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

node.js - 无法窥探原始值;在nestJS中给出未定义

我知道之前有人问过这个问题,但是当我运行服务测试功能时,我在 Nestjs 中遇到了这个错误

这是我的服务代码

用户服务.ts

用户.spec.ts

在这个文件中,我想测试返回用户数组的用户服务中的 allUserlist 函数。用户实体包含 id、name 和 phoneNo。当我运行测试时,我收到了类似的错误

这是我的笑话配置

我尝试了一切请给一些建议

0 投票
1 回答
603 浏览

javascript - PrimeNg 确认服务的 Jasmine 测试用例不起作用

我有一个函数在 PrimeNg 确认服务的“接受”调用中执行一些操作。我尝试为它编写一个单元测试用例,如下所示:

问题是执行永远不会进入 callFake。测试用例通过但操作从未发生。欢迎任何想法。

这是我要测试的功能:

我正在使用 PrimeNg 的 V6。我在这个 Stack Overflow 问题上看到了实现: Angular Unit Test of a PRIME ng Confirmation service

0 投票
1 回答
948 浏览

vue.js - AddEventListener DOM 事件 Jest 测试

我有一个用户 vue 组件,我正在尝试使用 addEventListener 测试 mount()。

我已经为用户组件编写了规范,并尝试使用 addEventListener 测试 mount() 方法。但是我收到一条错误消息,无法读取 null 的属性 addEventListener。

0 投票
1 回答
760 浏览

vue.js - 无法在 Vue 3 setup() 中监视函数

如何使用 Jest 编写一个调用resetTimer并检查startTimer也被调用的测试?

代码:

测试:

结果:

谢谢!

0 投票
1 回答
2019 浏览

angular - 如何在角度单元测试中使用模拟打开 MatDialog

我目前正在使用一个组件,在该组件中单击按钮会打开一个弹出窗口来问候用户。我正在使用角度材质对话框打开弹出窗口,点击时调用的组件代码块是

}

我还需要检查布尔属性以指示对话框打开和关闭。

在组件规范中,我为对话框提供模拟以防止实际依赖,如下所示,

在规范提供者中,

在之前的每个,

当我测试对话框打开时,如下所示,

它因错误而失败,

请指导如何使用规范中的模拟检查对话框打开。

0 投票
1 回答
421 浏览

javascript - 如何开玩笑模拟/监视类的属性

我是 Jest 的新手,所以如果我的提问没有正确阅读,我深表歉意,我正在对一个 vanilla JS 类的方法进行单元测试,该类引用了类属性“this.original_params”。通过阅读文档和许多其他 Stackoverflow 帖子,我仍然对我必须模拟哪些部分以及这样做的语法感到困惑。我目前正在尝试测试输入值是否为空以及来自 this.original_params 的目标值。

我尝试了多种编写测试的方法,但我不明白从哪里开始。这是测试的当前迭代:

我得到的错误:

很感谢任何形式的帮助。

0 投票
0 回答
444 浏览

reactjs - Jest spyOn 无法处理从另一个文件导入函数的 React 功能组件

我的jest.Spyon实现看起来很简单,但是即使我看到它必须被调用,间谍函数“没有”被调用。

功能

测试

覆盖报告

覆盖率报告 从第 197 行可以看出,它显然被调用了一次。

错误

错误快照

这非常令人困惑,因为我的测试成功chrome.storage.___.___使用了 spyOn API,jest.spyOn(chrome.storage.local, "get")但这失败了。

如果有帮助,我的存储库是开源的:https ://github.com/lbragile/TabMerger ,但是这个最新的测试还没有包含在其中。

0 投票
2 回答
712 浏览

node.js - Jest 使用 spyOn 模拟嵌套函数,但仍调用实际函数

getInfogetColor在同一个文件中调用。我的意图是模拟getColor函数,我将 func.js 作为模块和 spyOn 导入getColor。mockedgetColor应该返回“Red”,但它仍然调用实际函数并返回“Black”。

函数文件

测试文件

我也试过requireActual,但它也叫实际的。

如何在 Jest 中正确模拟嵌套函数?提前致谢。

0 投票
1 回答
35 浏览

angular - 如何测试从服务接收 Observable 的属性值

我想问一下测试从内联服务接收数据的属性的常见做法是什么。

我无法测试从服务定义的内联值接收值的属性。这是我的财产

getInstitutions()getDataSetTypes()返回Observable<string()>

这是我的规格

测试失败,结果

我也增加了超时间隔,但没有运气。有什么提示吗?

0 投票
2 回答
557 浏览

typescript - 在 Jasmine 中模拟嵌套函数调用

我目前正在尝试使用 Jasmine 测试我的打字稿功能:

我正在尝试通过模拟 A 来对函数 B 进行单元测试。我想看看是否调用了 A。这是我所拥有的:

当我运行这个测试时,我被告知从未调用过 ASpy。然而,经过进一步调查,我发现肯定调用了 A 函数。因此,似乎调用了 A 函数,但未触发我为该函数创建的模拟。我尝试在不同的文件中实现 A 函数并在 B 中调用它并在 AB.spec.ts 中模拟它;在这种情况下,测试通过,因为期望确定调用了 ASpy。我不确定为什么将两个函数放在同一个文件中会破坏测试,但将它们放在单独的文件中会通过测试。无论如何,我希望尽快收到某人的来信!我可以将函数放在单独的文件中,但我想在未来的项目中尽可能避免它。