问题标签 [sinon-chai]
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.
javascript - 如何检查使用 Mocha、Chai 和 Sinon 调用函数的参数数量?
假设我们有一个服务 Foo 正在导出一个函数
我们想编写一个单元测试来测试这个函数是用 2 个参数调用的。我试过这个
这又回来了
undefined is not an object (evaluating 'sandboxSinon.spy(Foo, 'bar').getCalls()[0].args
有人可以弄清楚发生了什么或我如何测试它吗?
angularjs - Sinon spy:试图将未定义的属性“路径”包装为函数
以下对 location.path 的间谍失败并出现错误:
试图将未定义的属性路径包装为函数
模拟控制器:
我正在尝试测试的行:
reactjs - 我们如何使用 sinon.spy 测试方法的返回类型?
我们正在使用 sinon 来测试我们在 reactjs 应用程序中的 api 调用,如下所示:-
现在我需要比较Actions.request()
返回类型是否为 Json 对象。如何使用sinon测试操作的返回类型?请帮助我。
javascript - Sinon 访问原始函数体
我正在用 sinon chai 和酶测试 React 组件。我正在编写一个具有 HOC 的插件,它将生成一个新的 React 组件。
我不确定用户会将什么传递给 HOC,所以我想检查它是否是 React 组件。我能找到的唯一(丑陋)方法是适应这个StackOverflow 答案
这是一种测试组件是否是 React 组件的模糊方法。
问题是当我的组件是一个 sinon 间谍时。
现在测试isReactComponent(ChildSpy)
将失败,因为isFunctionComponent
实际上将检查函数的主体,并且在这种情况下ChildSpy
将不再是原始函数的主体。
我知道我不应该依赖身体功能,但这是我能找到的最佳方式。
无论如何,有没有办法从间谍那里访问原始身体?在这种情况下,我怎么能把它传递给我的isFunctionComponent
?
javascript - Javascript sinon 测试回调
我正在尝试测试在回调中调用了某个函数,但是我不明白如何包装外部函数。我使用 mocha 作为我的测试套件,使用 chai 作为我的断言库,使用 sinon 作为我的假货。
文件测试.js
最后,我需要验证如果 getAllTablesFromDb 有错误,将调用 res.f1,如果没有错误,将调用 res.f2。
从这个片段中可以看出 externalController.getAllTablesFromDb 是一个接受回调的函数,在这种情况下,我使用箭头函数创建了回调。
有人可以解释我如何强制 getAllTablesFromDb 回调错误或成功,以便我可以使用间谍或模拟来验证 f1 或 f2 是否被调用?
node.js - 存根提取调用 - response.json 不会调用
我正在尝试使用 sinon 和sinon-stub-promise
. 我非常接近......但我不确定它为什么不调用response.json()
我创建的方法。
javascript - 如果函数A被异步调用,如何测试函数A是否在测试函数B中被调用
所以基本上我有我想要测试的函数,我们将调用函数 A。我想测试函数 B 是否在函数 A 内部被调用。问题是函数 B 在函数 A 内部通过已解析的 Promise 异步调用。这将导致 sinon 断言失败,因为测试将在函数 B 被调用之前完成!
这是一个工作代码场景。
node.js - 如何模拟 node-rest-client 请求?
我正在为我的项目使用 node-rest-client ,并且我已经到了要开始对使用node-rest-client 的类进行单元测试的地步。有没有关于如何在测试中模拟客户端的示例?我在单元测试中使用了Sinon。
angular - 如何正确测试 $injector 的使用?
我有一项具有以下功能的服务
我想知道如何测试这个?我试过这个:
我得到了错误(正确),服务'validServiceName'不存在。我也尝试对 $injector.get 进行存根,但我不明白应该返回什么存根以及如何从该服务调用该方法。
javascript - 如何使用 Sinon 存根对象?
我想知道是否/如何使用 Sinon 来存根mappedValues
嵌套在下面函数中的对象:
我的测试目标不是检查每个值,而是确保在传递时key
返回正确对应的值,并且该值不会以任何方式增加。
我认为最好的测试方法是使用测试存根mappedValues
,然后检查返回值,getValueFromObj
但我不确定如何实际存根对象。