问题标签 [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 - 在对 sinon spy 进行断言之前,等待 sinon stubbed promise 解决
我有一个中间件功能,它检查会话令牌以查看用户是否是管理员用户。如果所有检查都通过,该函数不会返回任何内容,而只是调用 next()。
在对作为 Sinon 间谍的 next() 回调进行断言之前,如何等待内部异步 Promise (adminPromise) 解决?测试当前将失败,因为测试中的断言是在 AdminMiddleware.prototype.run 中的承诺解决之前做出的。
功能是:
和测试:
目前我正在包装下面的期望,这将导致测试通过,但看起来像一个黑客。此外,如果它失败,将导致未处理的承诺拒绝错误和超时,因为 done() 没有被调用。
javascript - 具有多个嵌套函数的 Sinon、Chai 测试用例
我尝试使用 javascript 加载多个外部 js。我有单独的注入逻辑代码。当我加载一个 js 文件时,意味着测试用例工作正常。但是当我尝试加载多个 js 文件时,测试用例失败了。
主.js
测试.js
上面的代码工作正常。但是当我尝试加载多个外部文件时,测试用例失败了。
主.js
测试.js
错误详情:
有任何想法来解决这个问题。
angularjs - Jasmine - 监视函数内的函数调用
作为测试的新手,我做了一些愚蠢的假设,因此我的测试用例没有运行。
我的拦截器工厂看起来像:
现在要测试相同的内容,我写道:
茉莉花CallThrough() is not working and it's not calling myActionTransformer
,这正是我想要测试的。
我越来越undefined is not a constructor (evaluating 'sinon.spy(authorizationInterceptor, 'responseError').andCallThrough()'
)
。
我是新来的。请帮忙解释一下。
javascript - 如何使用 Mocha、Chai 和 Sinon 正确测试 Express 控制器方法
我对使用诗乃很陌生。我编写了以下测试,但它失败了,因为它res.status
总是以未调用的方式返回。
现在控制器中的方法非常简单。它首先使用sequelizefindOne
方法。如果它没有找到匹配的电子邮件,它应该抛出一个 401。这就是它的样子:
当我运行测试时,它确实到达了应该返回状态的 else 语句,但是测试失败了,当我检查日志时,它说res.status
从未调用过。
unit-testing - 模拟/存根是否启用或调试日志?
如何编写允许我验证不可访问属性 ( debugLog
) 是否设置为 true 的模拟测试?我是否试图找到一种方法来找到财产的价值?我是否验证console.debug
已设置?在这种情况下间谍是否有意义,还是我应该使用存根?
X 级
单元测试
node.js - 使用 Sinon.js 存根嵌套函数
我有一个嵌套对象->
现在我想存根'methodName'但不能这样做。已尝试在存根上将其退回,但不确定该怎么做。
javascript - 如何使用 Sinon JS 存根动态导入
我尝试用 sinon js 存根导入,实际上如何做到这一点,
import XLSX from 'xlsx'
beforeEach(() => sinon.stub(sheetJS).resolve({}))
- 对我不起作用,我发现错误resolve is not a function
javascript - 如何在我的测试类/方法中加载的对象中存根方法?
我们的MEANJS
应用程序有一个类 (Eg, CompanyService
),它加载CompanyRepo
另一个类的对象 (Eg, ) 并调用它的方法。我正在尝试为CompanyService
该类编写单元测试,并且需要在方法中存根一个方法CompanyRepo
来模拟承诺拒绝。然而,尽管有存根,CompanyService
方法调用似乎调用了实际的CompanyRepo
方法调用。
代码流程如下,
公司服务方式
单元测试方法
输出
公司服务 isDomainExists 方法 如果存在数据库错误,则应返回公司未注册: AssertionError:预期的承诺被拒绝,但它已通过 { Object ($__, isNew, ...) }
我想我能理解这里发生了什么。companyService 类有一个 require 语句,它加载 companyRepo 类,该类甚至在存根发生之前就被执行。有什么方法可以避免这种情况发生吗?在这种情况下,推荐的最佳做法是什么?
mocha.js - 如何使用 mocha、chai 和 sinon 证明调用实现回调?
考虑以下 mocha+chai+sinon 测试:
如断言中所述,我预计应该调用间谍。然而,摩卡报告:
用 console.log 替换间谍展示了预期的流程,所以我对为什么 mocha 报告负面感到困惑。
如何更改测试以证明预期的行为?
node.js - 如何恢复模拟的所有方法?
我正在使用 sinon 创建一个模拟,但它的方法在调用 restore 后没有恢复,当我再次尝试包装它们时出现错误。这就是我正在做的事情:-
但我得到 findOne 已经包装好了