问题标签 [spy]

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 回答
1354 浏览

debugging - 预期为间谍,但收到带有 Sinon 存根的函数错误消息?

我有以下测试套件:

为什么第一个期望语句通过但第二个失败?第二个给出错误消息:expected Spy but got Function 即使 Sinon 存根实现了 spy API 所以它应该返回一个 spy??

0 投票
3 回答
6123 浏览

unit-testing - 你如何用 Jasmine 监视 AngularJS 的 $timeout?

我试图监视 $timeout 以便我可以验证它没有被调用。具体来说,我的生产代码(见下文)将 $timeout 作为函数而不是对象调用:

并不是

然而,Jasmine 需要监视一个对象,如下所示:

我不知道'someObject'会是什么。

我正在使用 Angular 模拟,如果这有什么不同的话。

编辑:我正在尝试测试的相关生产代码如下所示:

在特定的测试场景中,我试图断言 $timeout 从未被调用过。

编辑 2:明确指定我使用 $timeout 作为函数,而不是对象。

0 投票
1 回答
204 浏览

jquery - 直接访问 jQuery 小部件工厂插件方法

使用 jQuery 小部件工厂,我想在内部测试调用方法。我怎样才能公开这些方法来监视它们?

我正在寻找引用小部件插件对象(在此处表示,WidgetPluginObject因此我可以监视它的方法。

更新

这是为了使用 mocha/chai 进行单元测试;不适用于任何类型的调试。

0 投票
1 回答
1105 浏览

javascript - 使用 jasmine 监视节点 child_process

我是 nodejs 和 jasmine 的新手。从事一个学习 javascript/node 和 jasmine 的小项目。我试图监视节点中的对象 child_process 并查看使用指定的参数调用方法'spawn'。

jasmine 错误报告当调用 spawn 方法的对象(在本例中为 Nndb)时,从不调用 spawn。但是实际工作是由子进程执行的,因为我在控制台中看到了打印的结果。

这是我在运行 jasmine-node 脚本时看到的失败:

失败:

1) 抓取 xyz 生成子进程消息:预期的 spy spawn 已使用 ['../src/scrape_nndb.js', 0] 调用,但它从未被调用过。Stacktrace:错误:使用 ['../src/scrape_nndb.js', 0] 调用了预期的间谍生成,但从未调用过它。在空。(/Users/arun.bakt/skunkWorks/scraping/spec/nndb_spec.js:30:41) 在 Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

6.024 秒内完成 1 次测试,1 次断言,1 次失败,0 次跳过”

它的茉莉花测试文件:

下面正在测试的文件 nndb.js:

0 投票
1 回答
864 浏览

backbone.js - 用 Jasmine 监视 Backbone View 回调方法

我有以下看法:

我的规格如下所示:

treeView.delegateEvents()按照以下解决方案中的建议添加: SpyOn abone view method using jasmine

但是我的测试仍然失败:

方法 foo 被按预期调用一次,怎么会呢?

0 投票
1 回答
282 浏览

java - 有没有办法在后台监控应用程序并且对用户不可见

我想做的是创建一个无需用户交互即可执行其功能的应用程序。这不应该在设备的应用程序页面上有任何应用程序图标。安装后用户不需要知道设备中运行的应用程序。我尝试在演示应用程序中使用无启动器活动,但它没有运行应用程序代码,这很明显。有没有办法完成这个任务,这有​​什么意义吗?

0 投票
2 回答
20538 浏览

javascript - 如何在另一个方法中创建的对象上使用 Jasmine 间谍?

给定以下代码片段,您将如何创建一个Jasmine spyOn测试以确认doSomething在您运行时被调用MyFunction

这是我的测试的样子。spyOn不幸的是,在评估调用时出现错误:

Jasmine 那时似乎不认识这种doSomething方法。有什么建议么?

0 投票
1 回答
4196 浏览

javascript - Jasmine-node - 在其他函数内部调用的构造函数上创建间谍

我是 jasmine 的新手,我需要在这个框架中为 node.js 应用程序编写一些单元测试。我有一些问题,其中之一是如下所述:

我想为sampleFunction. 为此,我需要在Loader构造函数上创建 spy 并检查此构造函数作为参数获取的内容以及它返回的对象类型。

任何想法如何做到这一点?我试图创建间谍,Loader.prototype.constructor但这不是解决这个问题的方法。

0 投票
3 回答
25379 浏览

java - Mockito 间谍方法不起作用

我遇到了 mockito.spy 方法的麻烦。

我最近来到一个“旧”项目,我的第一个任务是在其中添加模拟,并进行真正的单元测试:)

该项目有很多概念问题,但这不是重点;)

我解释我的问题:

我有一堂课

在我的测试类 TitiTest.java 我只想测试 executeTiti,我不想测试 executeToto 的东西,因为这个类有自己的测试类 TotoTest.java。

但正如您所看到的,toto 在titi 构造函数中实例化所以我尝试这样的事情:(我也在我的测试中使用 PowerMock,所以我使用的是 PowerMockRunner 但它似乎不是问题)

但真正的方法总是每次调用和 ret = 5 :(

我错过了什么吗?我在stackoverflow上阅读了很多关于此的帖子并尝试了所有解决方案,但它从来没有奏效,因为我认为我做对了。

我使用 junit4.11/powermock1.5.4/mockito1.9.5

0 投票
1 回答
1823 浏览

typescript - jasmine spyOn 没有正确报告 toHaveBeenCalled 和 toHaveBeenCalledWith

被测代码:

规格测试对象:

调用 callLogonApi 函数并按预期写入控制台,但输出为:

*这现在与 ApiService 的构造函数一起工作,更改为:

*并且 spyOn 需要

感谢瑞安的精彩回答!!