【发布时间】:2016-02-17 16:22:35
【问题描述】:
我正在为我正在开发的 NodeJS 应用程序编写一些单元测试,我对一些单元测试逻辑有疑问。
假设应用程序为用户创建一个“组”,然后创建一些个人用户,然后将用户添加到所述组,顺便说一下,这些都是异步函数(MongoDB)
我希望有一个测试用例来测试组是否成功创建,然后是一个单独的测试用例,用于测试用户创建,然后是用户 -> 帐户关联。
显然,如果 Group 失败,或者 Users 失败,那么执行 User -> Group 关联单元测试是没有意义的。我是否应该在单元测试中编写一些逻辑来检查是否存在错误(在expect(err).to.equal(null) 之后),如果它为空,则执行其他测试用例?这是唯一对我有意义的逻辑,但我在任何其他包的任何单元测试中都没有看到任何这种类型的逻辑(我查看了一些单元测试,看看我是否能发现类似的东西)
另外,如果我有多个与新创建的用户交互的测试用例,是否应该每个测试用例都尝试创建一个用户,然后继续进行自己独特的测试?或者我应该尝试构建它以便它与刚刚创建的用户交互(如果它成功的话)
例如:
describe('User', function () {
describe( '.createUser', function() {
it( 'Create user Foobar', function( done ) {
// ...
})
} )
describe( '.updateContacts', function() {
it( 'Update contacts for user Foobar', function( done ) {
// ...
})
} )
describe( '.changePassword', function() {
it( 'Change password for user Foobar', function( done ) {
// ...
})
} )
describe( '.deleteUser', function() {
it( 'Delete user Foobar', function( done ) {
// ...
})
} )
})
updateContacts、changePassword 和 deleteUser 是否都应该尝试创建自己的用户进行交互?好像有点多余。。
希望我解释正确。
【问题讨论】:
标签: javascript node.js unit-testing mocha.js