【发布时间】:2015-10-27 13:01:38
【问题描述】:
我是新手,我一直在寻找编写适当功能测试的方法(或标准),但我仍然有许多未解决的问题。我正在使用 FrisbyJS 为我的 NodeJS API 应用程序编写功能测试,并使用jasmine-node 来运行它们。
我浏览了 Frisby 的文档,但对我来说没有什么收获。
这是一个场景:
- 客人可以创建
User。 (显然,不允许用户名重复) - 创建
User后,即可登录。成功登录后,他会获得一个访问令牌。 -
User可以创建Post。那么Post可以有Comment,以此类推... -
User一经创建便无法删除。 (不是来自我的 NodeJS 应用程序)
Frisby 文档说的是,我应该在测试中编写测试。
例如(full-test.spec.js):
// Create User Test
frisby.create('Create a `User`')
.post('http://localhost/users', { ... }, {json: true})
.expectStatus(200)
.afterJSON(function (json) {
// User Login Test
frisby.create('Login `User`')
.post('http://localhost/users/login', { ... }, {json: true})
.expectStatus(200)
.afterJSON(function (json) {
// Another Test (For example, Create a post, and then comment)
})
.toss();
})
.toss();
这是编写功能测试的正确方法吗?我不这么认为......它看起来很脏。
我希望我的测试是模块化的。每个测试的单独文件。
如果我为每个测试创建单独的文件,那么在为Create Post 编写测试时,我需要一个User 的访问令牌。
总而言之,问题是:如果事物相互依赖,我应该如何编写测试?
Comment 依赖于 Post。 Post 依赖于 User。
【问题讨论】:
标签: node.js functional-testing frisby.js