问题标签 [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 回答
2480 浏览

javascript - How to spy a predefined object with sinon.js

I'm trying to spy window.document with sinon.js. What I do is this:

What I expect from this call is this: When document.getElementById is called with the argument "foo" the function must return "bar". What's my error?

If I define getElementById by myself like this I get the expected result:

0 投票
1 回答
1209 浏览

javascript - 使用带有动态函数绑定的测试间谍的好方法

我使用$.proxy(this, 'methodName')对象的方法作为 DOM 事件的事件处理程序。

在测试方面,我想使用 JasminespyOn来监控回调是否被触发。但是,当我开始监视该方法时,侦听器已附加到我的 Object 的构造函数中,为时已晚,并且原始的、未监视的函数已被$.proxy.

有什么好的方法来解决这个问题?我考虑过的一件事是直接监视原型的方法,但我担心这可能对每个独立于其他测试的测试产生影响。另一种方法是改变我在代码中附加监听器的方式,但这似乎是把婴儿和洗澡水一起扔了。

0 投票
1 回答
2966 浏览

mockito - 模拟/监视超级类的私人成员

我正在编写junit测试来测试BaseClass方法。该方法使用超类成员。构造BaseClass函数调用super(arg1, arg2). 在 super(arg1, arg2) 构造函数中,有一个依赖注入器设置了超类的私有成员。当我运行测试时,由于未设置依赖项,因此 super() 抛出异常。我只想模拟 super() 中使用依赖注入设置私有成员的语句。如何处理模拟?

0 投票
6 回答
34401 浏览

java - mockito 使用 spy 进行更好的预期异常测试

如何进行第三次测试以检查异常消息中是否存在 cause1?我还在前两个测试中列出了缺点。首先是不检查消息,其次需要大量样板代码。

我在 Mockito 中找不到有效的东西,但有些东西看起来是可能的(在语法层面上)和功能。


使用 catchexception 我创建了这样的测试

0 投票
1 回答
630 浏览

javascript - 监视不可变的本地方法

我想测试是否window.location.assign被调用,所以我试图使用spyOn(window.location, 'assign');,但该方法不可覆盖。

还有其他方法可以用来监视无法覆盖的本机方法吗?

0 投票
1 回答
452 浏览

angularjs - 如何存根在对象构造期间调用的控制器方法

refresh()我有一个 AngularJs 控制器,它在构建时调用它自己的方法。有问题的方法访问单元测试期间不存在的一些模板元素。

在构建控制器时,refresh 方法会导致单元测试失败。由于它所做的工作与测试无关,我想用存根覆盖该方法并简单地测试它是否已被调用。

Jasmine 的 Spy 功能看起来像是要走的路,但我找不到在构造对象之前为它设置一个的方法。我该怎么做?

0 投票
1 回答
22918 浏览

javascript - 如何测试触发事件后是否调用了函数?

FooView..中触发了自定义事件

关联的FooController绑定一个处理程序来处理事件......

为了测试事件处理,我将为Jasmine编写以下测试:

虽然,测试失败..

测试失败是因为事件的执行时间比预期的要长吗?

0 投票
1 回答
10389 浏览

java - 调用模拟对象的方法时如何验证返回值

使用 Mockito,有没有办法对一个对象进行 spy() 并验证一个对象是否使用指定的参数被调用了给定的 # 次,并且它返回这些调用的预期值?

我想做类似以下的事情:

0 投票
2 回答
3007 浏览

android - 带有 Mockito 间谍的 Robolectric buildActivity()?

在我看来,使用 Robolectric 的生命周期实用程序(以 开头Robolectric.buildActivity())构建 Activity 单元测试和使用 Mockito 间谍监视同一个 Activity 是相互排斥的。

因为buildActivity()控制 Activity 对象的构造,所以为 Activity 添加 spy 的唯一位置是在调用buildActivity(). 但是,在事后添加间谍时,间谍无法正常工作。

在监视生命周期方法的副作用时尤其如此,ActivityController 例如create(),start()resume(). 我认为这是因为 ActivityController 持有对“真实” Activity 对象的引用,而不是后来添加的间谍。

那么有什么方法可以监视正在使用 Robolectric 进行单元测试的 Activity,以便间谍在通过 Robolectric 调用生命周期方法时正常工作ActivityController

0 投票
0 回答
762 浏览

window - 如何在 Windows 8 中冻结 ahk 窗口间谍

我的 Window Spy 说“Shift-Alt-Tab 冻结显示”但 ShfitAltTab 将所有窗口最小化。如何在 Windows 8 中冻结自动热键的 Window Spy?