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

javascript - 如何为特定的 axios 调用模拟 jest.spyOn

如何模拟特定的 axios 调用?想象一下 2 次 GET 调用:

然后这是在测试中发生的:

如何mockReturnValueOnce根据传递给 axios 的 url 创建条件(例如 for 'api/numbers'-> return Promise.resolve({ data: 1 })

0 投票
2 回答
163 浏览

angular - TypeError:无法使用 spyOn 读取未定义的属性“订阅”

我期望在我的Angular应用程序测试中未定义一个数组。为了做到这一点,我的测试需要首先调用我测试过的组件的一个函数。在该函数中,它订阅服务的函数。

这是我的测试课。包括服务和模拟服务的必要设置以及测试本身。该测试包括我已经尝试过的注释行。

我尝试的所有方法仍然导致错误:

TypeError:无法读取未定义的属性“订阅”

它引用了我订阅服务功能的组件功能中的getItemsById

我的模拟服务:

我的订阅原始服务功能的测试组件:

我没有包括我的原始服务,因为它被嘲笑,如果需要,请告诉我。我假设解决方案是某种形式,spyOn但我已经尝试了我能找到的一切。

使用 Angular 8

0 投票
2 回答
7622 浏览

reactjs - Jest spy on component's property method

I'm trying to test if an event has been added in the init method called by componentDidMount, but that event is going to be added only if a component's attribute is set in "true" so I want to spy on the addEventHandler method and call the "toBeCalledWith('eventName')" so I have something like this:

Then I have my test looking like this:

but the test above does not cover if the addEventListener is called or not so I'm trying different ways like following, without success:

any suggestion?

0 投票
1 回答
674 浏览

reactjs - 为什么 jest.spyOn 找不到我的组件功能?

假设我有这个简单的 React (TypeScript) 组件:

我想测试(Jest,TypeScript)Tabs.onChange正在调用onChangeFunc. 我应该如何测试它?就像是:

关于 spyOn 中的第二个参数,我遇到了错误:

我究竟做错了什么?

0 投票
1 回答
409 浏览

javascript - 如何监视类对象内部调用的函数

我想测试是否this.service.someMethod使用 jasmine spy 调用。

源文件:

规格文件:

输出:

失败的测试:预期 comp.service.thatMethod 已被调用。

0 投票
0 回答
397 浏览

javascript - Jest.spyOn 非法调用

目前,我有以下代码的简单创建反应应用程序

跑步时npm test,我得到了这个Illegal invocation

知道如何解决吗?

更新 1

我稍微更改了代码。基本上,我想对覆盖率onloadonerror. 我具体需要做什么?

0 投票
1 回答
5592 浏览

angular - Modify mockImplementation results in SpyOn of jest

SpyOn is used to detect the parameters passed to an underlying function. In some cases we want to modify the result from the call-through and return that to the caller.

How do we get the result of of the call-through in SpyOn before it is returned?

Here is an example:

Of course in the mockImplementation I can return any value. But let's say I don't want to statically return a value and just want to use the underlying database to get some result and then modify it. Since I have already mocked the entire store with some valid data every time I call the findOne I get valid results. But in order to test the failure cases I want to modify the returned results from the call-through.

I hope that is clear.

0 投票
1 回答
135 浏览

angular - spyOn(Observable, 'fromEvent') 升级到 rxjs 6.5 后抛出错误

上面的代码有如下单元测试用例:

当我有 angular 6 和 rxjs 5.5 时它工作正常,但是在我升级到 angular 7 和 rxjs 6.5 后它会抛出错误:

对修复或解决方法有任何帮助吗?

0 投票
1 回答
1333 浏览

typescript - jasmine 如何 spyOn 一个泛型方法

我试图对打字稿中的通用方法进行间谍活动,
但无法让 Jasmine 识别它。


我有代码

我想在哪里模拟该get<...>方法。

但是当我运行测试时,我得到

错误::get()方法不存在
用法:spyOn(,)

0 投票
1 回答
834 浏览

javascript - 如何在一个单元测试中用 jest 模拟多个不同的数据库调用?

我正在为一个进行多个不同数据库调用的函数编写一个有趣的单元测试。我可以很好地模拟第一个 db 调用,但我无法模拟其他调用。

我的功能:

我的测试文件:

当我运行该测试时,所有 3 个 db 调用的结果都等于最后一个 mock [7, 8, 9]。有人可以指导我如何正确模拟这三个电话吗?

先感谢您!