当前位置: 首页 > 知识库问答 >
问题:

离子单元测试警报控制器

云承弼
2023-03-14

我正在为一个应用程序工作,该应用程序使用警报告诉用户它正在使用nfc。我正在对这个应用程序进行单元测试,并在alertcontroller上设置了一个间谍。创建方法如下:

alertController.create = jasmine.createSpy().and.resolveTo({
    present: jasmine.createSpy()
});

在单元测试中,我想检查是否使用正确的警报选项调用它,如下所示:

      expect(alertController.create).toHaveBeenCalledWith({
        header: 'NFC aan het lezen...',
        message: 'Hou de pas tegen de achterkant van de telefoon',
        buttons: [
          {
            text: 'Anuleren',
            role: 'cancel',
            handler: () => nfc.stopRead()
          }
        ]
      });

然而,问题是由于处理程序的原因,它在运行测试时给出了错误。我如何有效地测试alertcontroller.create函数是否使用正确的值调用?就像现在一样,测试给出了以下错误:

  Expected $[0].buttons[0].handler = Function to equal Function.

我想检查提供的对象是否正确,但函数没有检查。

共有1个答案

党权
2023-03-14

我要和它一起工作

jasmine.any(Function)

因此,代码如下:

      expect(alertController.create).toHaveBeenCalledWith({
        header: 'NFC aan het lezen...',
        message: 'Hou de pas tegen de achterkant van de telefoon',
        buttons: [
          {
            text: 'Anuleren',
            role: 'cancel',
            handler: jasmine.any(Function) as any
          }
        ]
      });
 类似资料:
  • 我是Ionic-Angular的新手。问题是我有一个matauto补全和图标。当您在matauto补全中选择一个值时,下面会显示一个列表。单击图标时,我将显示ionic alertControl,选择确定时,以编程方式设置matauto补全的值。虽然值在matauto补全中设置,但列表并不刷新。然后当我再次单击图标或更改窗口时,列表会刷新。

  • 本文向大家介绍AngularJS 单元测试控制器,包括了AngularJS 单元测试控制器的使用技巧和注意事项,需要的朋友参考一下 示例 控制器代码: 考试: 跑!

  • 问题内容: .controller(‘newGoalCtrl’, function($scope, $ionicPopup) { $scope.addNewGoal = function() { alert($scope.goaltitle); }; }); 这是我的代码…我不知道如何解释,但是当我在文本框中输入内容时,它总是说未定义… 但是$ scope.goaltitle =“东西”正在.co

  • 问题内容: 初始化JavaFX运行时的正确方法是什么,以便您可以对使用并发工具和的控制器进行单元测试(使用JUnit)? 从该方法调用会导致死锁。如果未调用,则会引发以下错误: 后续:这是我根据@SergeyGrinev的建议一直使用的主题。 问题答案: 调用由是正确的做法。请注意,这不会将控制权返回给调用代码。因此,您必须将其包装到中。 7年后的更新: 使用TestFX!它将以适当的方式进行启动

  • Spring Boot提供了一种为Rest Controller文件编写单元测试的简便方法。 在SpringJUnit4ClassRunner和MockMvc的帮助下,我们可以创建一个Web应用程序上下文来为Rest Controller文件编写单元测试。 单元测试应该写在src/test/java目录下,用于编写测试的类路径资源应该放在src/test/resources目录下。 对于编写单元测

  • 如果用户试图在文本框中粘贴字符串,我想清空警报输入。这是我的代码: 到目前为止,我正在检测粘贴事件,但清空文本框的代码不起作用。我还尝试使用: document.getElementById('txtSerial'). value = ''; document.getElementById('txtSerial')["值"] = ''; event.src元素["值"] = '"; 但是这些似乎都