以下是我的控制器中的内容:
$scope.addRangesAndSquare = function() {
$scope.addLeftRange();
$scope.addCenterSquare();
$scope.addRightRange();
}
而且我想监视$scope.addLeftRange()
,以便在$scope.addRangesAndSquare
被调用时是$scope.addLeftRange()
:
it('expect addLeftRange to be called after calling addRangesAndSquare', function () {
spyOn(scope ,'addRangesAndSquare');
spyOn(scope, 'addLeftRange');
scope.addRangesAndSquare();
expect(scope.addLeftRange).toHaveBeenCalled();
});
如何才能做到这一点?
默认情况下,当您spyOn
与 jasmine一起
使用时,它将模拟该函数,并且实际上不执行其中的任何操作。如果要在其中测试其他函数调用,则需要调用.andCallThrough()
,如下所示:
spyOn($scope, 'addRangesAndSquare').andCallThrough();
应该这样做。
我使用文件在 Webstorm 8.0.4 中设置了茉莉花集成 这与语法突出显示的工作方式一样,我可以跳转到声明,文档显示正确。所以连接看起来很好。然而,JSHint仍然为每个关键字抱怨它没有被定义,例如 另请参见以下屏幕截图。正如您所看到的,语法突出显示很好,但我仍然收到一个错误。
我正在使用jasmine 2.0。 我试图理解函数。 使用以下基本茉莉花代码: 我认为我看到的发生: 运行,安装时钟,记录安装 测试运行时,setTimeout不执行任何操作 测试等待5秒(Jasmine失败前的默认超时) 测试失败,因为从未调用。 我知道这一点,因为我得到了错误:超时-异步回调没有在jasmine指定的超时内调用。DEFAULT_TIMEOUT_INTERVAL。 然后运行,卸载
如果我有一个函数: 然后我可以测试它(我使用mocha sinon),我在其中监视外部库方法,如下所示: …但如果实现将内部定义的函数传递给我监视的方法,该怎么办? 我如何测试它?
问题内容: Angular服务具有多个功能。它们全部使用通过文件顶部的a定义的局部变量。 对单元进行功能测试时,有什么方法可以模拟此变量? 问题答案: 简而言之,没有。 最简单的方法是将其置于$ scope级别。或者也许作为angularjs常量 角常数 或者,如果您是一个非常疯狂的家伙,则可以制作一个脚本来更改var的值,但是严重的不要这样做,那太疯狂了。
我正试图写一个Jasmine测试来覆盖一个Twitter Boostrap模态对话框。当调试器行被注释掉时,测试失败。当调试器暂停处理并且我继续时,它通过。我认为引导模式的转换导致了这个问题,因为在我进行expect调用时,模式对话框还不在DOM中。 如何在测试期间禁用转换? 谢谢 感谢Jarred,您的解决方案非常有效!这是我的工作测试:
Im在这段代码中使用了两个函数。用户可以通过点击“+”按钮上传图片。他们也可以通过点击“-”按钮移除图像。但文件上载功能对新行不起作用。用户不能选择任何文件,这些文件不显示在HTML中。请检查我的jsfiddle链接并帮助我。https://jsfidle.net/mhmdsohail/6mee3l8t/14/