问题标签 [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 投票
2 回答
1892 浏览

java - 在测试方法中模拟 logger.debug() 调用

我有一个我正在尝试测试的方法,比如说methodToTest()。在这个方法里面是一个我认为是Logger变量的调用,比如:

问题是 logger 变量是在类之外声明的(它似乎是继承的),我没有它的来源。

当我创建一个测试类的实例,然后调用该methodToTest()方法时,我得到一个NullPointerExceptionatlogger.debug语句。

我怎样才能完全模拟记录器?它在测试本身期间没有用。

给我一个错误,即使我Logger在测试类中创建了一个变量。

我在想我也许应该使用间谍,但我不确定如何,然后不确定如何处理我目前的when().thenReturn();陈述。

根据@kamil 的建议,

代码抛出以下错误:

0 投票
1 回答
1011 浏览

unit-testing - Backbone.js 中的 Mocha.js 和 sinon spy

我有一个假人Backbone.Model

Backbone.View我的模型如下:

对于测试,我使用 mocha.js + chai + sinon,我有以下测试

我试图测试的是监视该render方法:当我更改模型属性时,render将调用该方法。但是,即使渲染正常执行,测试也会给我错误

有什么帮助吗?

0 投票
1 回答
3139 浏览

angularjs - 将 Jasmine spyOn 与 $resource 一起使用

我正在尝试使用 Jasmine 间谍来测试在 $resource 上调用查询的控制器。当我按如下方式编写对资源的调用时,我可以获得成功的测试(下面链接的 plunk 中的实现 1)

但我宁愿这样调用资源(下面链接的 plunk 中的实现 2)

这是我的规格

知道为什么实现 2 无法通过测试(即使它运行良好),以及如何编写测试以通过实现 2?

点击这里查看

0 投票
1 回答
6354 浏览

angularjs - 我如何监视模拟服务 AngularJS / Karma?

我想写一个测试spyOnifisAuthenticated被调用 from UserService。在我的beforeEach,我有:

任何帮助将不胜感激..谢谢

0 投票
1 回答
447 浏览

c# - MAPIfolder 相关的内容不能始终从 Outlook 获得?

使用 ac# vsto addin 我正在尝试访问收件箱文件夹的相关内容,我认为它代表了活动视图。(目标是弄乱 pr_view_state 属性中的 blob)。问题是只有当我首先从 UI 访问“视图设置”时,才能访问该项目。顺便说一句,即使使用 Outlook Spy,我也观察到相同的行为

正如我所说,如果我在 Outlook GUI 中使用视图设置,那么上面的代码可以工作(项目也显示在 Outlook Spy 中),如果没有,则 pr_normalized_subject 返回一个空字符串,访问 pr_view_state 属性会引发异常。我究竟做错了什么?

0 投票
1 回答
232 浏览

javascript - 如何为 jquery 调用`$(some)` 创建一个间谍?

我定义了一个 requirejs 模块来提供一个获取浏览器宽度的函数:

浏览器工具.js

现在我想为它编写单元测试,所以我想模拟jquery

你可以看到我想用:spyOn(jquery, "apply")来模拟,但是这个测试不起作用,似乎我发现了一个错误的方法。

如何解决?

0 投票
2 回答
1107 浏览

java - 如何使用 mockito spy 进行惰性评估?

我想使用 mockito 间谍。

当我通过以下两种方式设置返回值时:

我看到正在热切地评估返回值

表示何时执行此“设置”行。

我怎样才能强制间谍只在需要时评估返回值?

表示何时满足“何时”条件。

更新

感谢@RobbyCornelissen,我尝试了以下代码:

但这没有帮助:

1) "when" 表达式被立即调用。(不想要)

2)最终没有调用回调。

0 投票
1 回答
870 浏览

java - 如何验证使用“null”参数调用间谍

我正在尝试运行此行:

验证这个方法是用 null 作为第二个参数调用的。

但我收到此错误:

如何验证使用 null 作为第二个参数的调用?

0 投票
0 回答
530 浏览

javascript - 仅在 Javascript 中模拟构造函数(使用 spyOn)

我在这里做类似这个问题的事情,它允许我在我的测试中提供我自己的Date构造函数实现

我现在遇到了一个问题,我想升级 moment.js 并且他们在我用我的模拟 Date 对象调用的代码中使用了额外的 Date 函数。这些功能不存在:

所以我认为我需要做的是以某种方式只模拟构造函数Date并让其他函数通过它。

我尝试了各种形式的.andCallThrough以及将它需要的函数分配给 spy 对象都无济于事(例如,spy.UTC = OldDate.UTC)。有任何想法吗?

0 投票
2 回答
394 浏览

java - Mockito 间谍如何知道它何时进行间谍活动?

文档中的这段代码让我完全困惑:

我明白了,Mockito 很奇怪,而且几乎不在 Java 中。令人困惑的事情是spy.*在它知道它是否被包裹在一个when()或什么东西之前必须完全评估。第spy.*一种方法到底怎么会不调用真实对象,但后来的方法呢?