我开始进行 Node.js 单元测试,并且一直在调查 Node.js 中最常用的单元测试框架。我想从最常用的框架开始,只是为了让事情变得更容易,因为可能有更多关于它的信息。根据许多网站的说法,这可能是 Mocha 。
虽然我了解这个模块用于进行集成测试,但我真的不知道如何通过使用 stub 依赖项等功能来使用它。我看到 mocha 不提供模拟/ stub 功能,所以我真的不知道人们通常如何处理这些问题。
所以我想知道哪些模块现在最流行用于进行单元测试、 stub 依赖项...一个简短的示例就很好了。
谢谢
最佳答案
当前在许多 Node.js 项目中组合在一起的模块套件似乎是:
所有这些都可以在 Node.js 和浏览器中工作,这对包括我在内的许多人都很重要。正如您所期望的,有很多选择,尽管当谈到 mock 和 stub 时,我相信Sinon显然是当前流行的选择。
这是一个使用所有这些库的 Coffeescript 的小示例。它测试当您填写登录表单并提交时,您的信息是否正确传递到 API。
describe "UserSignInView.signIn", ->
it "should submit the user credentials", ->
sinon.spy _OT.api, "sendJSON"
testUser =
email: "test.user@othenticate.com"
password: "password"
$("#OT_signInForm .OT_email").val(testUser.email).change()
$("#OT_signInForm .OT_password").val(testUser.password).change()
$("#OT_signInForm .OT_signInButton").click()
assert.ok _OT.api.sendJSON.called
credentials = _OT.api.sendJSON.lastCall.args[0]
assert.equal credentials.email, testUser.email
assert.equal credentials.password, testUser.password
options = _OT.api.sendJSON.lastCall.args[1]
assert.equal options.url, "/othen/users/authenticate"
assert.isDefined options.error
assert.isDefined options.success
关于unit-testing - 在 Node.js 的单元测试中 stub 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13671657/