问题标签 [spyon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2293 浏览

javascript - 使用带有 $httpBackend 的 spyon 的 Jasmine 测试不起作用

我正在尝试使用 spyon 在使用 $http 的方法上对一些 javascript 编写茉莉花测试。我已经使用 $httpBackend 模拟了这一点,不幸的是,间谍似乎没有意识到该方法确实被称为 post $http useage。我可以看到它在调试中被调用,所以不确定为什么它报告它没有被调用。我怀疑我的示波器使用有问题?或 $httpBackend.flush\verify 的顺序?:

被测代码

测试设置

工作测试:

不起作用的测试(但应该。返回 count-0 但被调用)

0 投票
1 回答
2283 浏览

angularjs - 如何窥探 Angular 提供者工厂方法?

在 Jasmine 中,您可以 spyOn(object, 'function')。我正在尝试监视一个提供程序,该提供程序用作“提供程序()”。如何窥探它?

提供者如下所示:

在控制器中,它将像这样使用:

对于 object.method(),我们可以 spyOn(object, 'method')。提供者()呢?

我用谷歌搜索,找不到任何有用的东西。我尝试了 spyOn(provider),但出现错误说“undefined() 方法不存在”。

我什至试图嘲笑提供者,但没有成功。(http://www.sitepoint.com/mocking-dependencies-angularjs-tests/

0 投票
1 回答
1129 浏览

unit-testing - 监视本地函数 Angular 服务

我有一个使用本地函数的 Angular 服务并执行以下工作:

现在我想用 jasmine 测试我的服务,并且我想测试是否调用了 localService。像这样的东西:

我该怎么做,请帮忙。

0 投票
1 回答
2978 浏览

javascript - 使用 Jasmine 测试函数内部的函数

我有一个函数,里面有一个函数我需要能够测试内部函数是否被调用我试过寻找 spyOn 的例子,但没有找到任何东西我可以使用我试图测试的代码就像

我希望我能做的测试是 InnerFunc 已被调用 任何帮助都会非常受欢迎

0 投票
2 回答
9347 浏览

javascript - spyOn:预期是间谍,但得到了功能

我正在使用 Jasmine 框架创建一些 Javascript 测试。我正在尝试使用该spyOn()方法来确保已调用特定函数。这是我的代码

但我得到一个

期待一个间谍,但得到了功能

错误。我试图删除该spyOn(text, "match");行,它给出了同样的错误,似乎该功能spyOn()不起作用是应该的。任何想法?

0 投票
1 回答
1496 浏览

javascript - 为什么 spyOn 在 Jasmine 中“停止所有函数的执行”(要求澄清 Jasmine 2.2 间谍文档)

在 Jasmine 2.2文档中,我无法理解演示 Spies 基本用法的最后一个规范。

beforeEach()我们设置的部分bar = null,然后我们监视foo.setBar,然后我们调用foo.setBar了两次。我不明白为什么bar === null在最后一个规范中。不应该是bar === 456在间谍被拆除之前的规范吗?

这是示例:

我一定是误解了 beforeEach 是如何建立和拆除变量范围的,或者可能有一个步骤describe可以重置部分中的变量?或者他们从来没有真正接触过,因为我们只使用了 spy 功能而不是真正的功能?

如果您能解释一下bar这个规范套装中的变量到底发生了什么,那将非常有帮助,这样我就可以理解为什么它的值在上一个规范中仍然为空。

谢谢!

0 投票
1 回答
8936 浏览

angularjs - Angularjs:使用 spyOn 模拟 location.path() 进行单元测试

我已经阅读了这篇文章(和其他文章),但我无法让这个简单的单元测试工作。我正在使用 Jasmine 的第 2 版。我的工厂很简单:

我的单元测试也很简单:

这没有通过测试(我得到错误期望 false 是“家”)。

我做错了什么?有没有办法验证 spyOn 已被调用(仅一次)?

0 投票
0 回答
873 浏览

angularjs - 使用 Jasmine 在 angularJs 中进行单元测试:模拟无限递归函数

我正在尝试Jasmine使用具有无限递归函数的控制器进行单元测试,我在创建控制器时调用该函数,如下所示:

但是我不能像下面的代码那样注入这个控制器进行单元测试,否则我会收到这个错误:

我没有看到任何其他模拟该函数的方法,但如果我在控制器注入之前定义它,我会收到一个错误(updateInfo() method does not exist),因为控制器尚未注入。

我尝试像这样用 spyOn 模拟我的函数 updateInfo():

我缺少一些基本的东西(我是茉莉花的新手)?我能做什么?

0 投票
0 回答
364 浏览

javascript - 仅在传递特定方法时才使用 jasmine / spyOn 模拟方法

是否可以Jasmine .spyOn()仅在某个参数为某个值的情况下使用 , 来模拟方法?基本上,假设我有一个GetUser方法,我想模​​拟它,如果它通过username = 'test',它将发送一个测试用户,否则为 null。一些测试假代码将是:

这相当于 C# / Moq 为:

我知道这可以通过使用自定义编码来完成and.callFake,但这似乎很麻烦。实际有效的测试代码是:

0 投票
1 回答
345 浏览

javascript - 如何监视 node-jasmine 中的类方法?

我有一个模块用户 - 像这样:

使用类方法的函数:

我有我的茉莉花测试-

本质上,我想删除用户类方法findByUsername并用我自己的结果伪造回调,即 nul 错误和用户(好像找到成功一样)。

我在我的应用程序中对许多“类”方法进行了 Spy,并且没有这个问题。这让我有点莫名其妙。该错误仅在我添加.and.callThrough或添加.and.callFake到间谍时显示。当我删除它的那一刻,测试只是超时...这是有道理的,因为间谍工作并且不调用异步瀑布继续所需的回调。

我得到的错误是 -

错误信息