如果测试共享和改变一些公共状态,并且它们的逻辑取决于以前的测试怎么办?这是可以接受的做法吗?简单代码例如(js):
describe('Some tests', () => {
const state = {
value: 'test'
addMe() {
this.value = this.value + ' me'
}
addPlease() {
this.value = this.value + ', please'
}
}
it('Some test', () => {
state.addMe()
expect(state.value).toBe('test me')
})
it('Another test', () => {
state.addPlease()
expect(state.value).toBe('test me, please')
})
})
Run Code Online (Sandbox Code Playgroud)
通常,测试的设计不应相互依赖。这当然不是法律,而是一种很好的做法,因为它为您的测试套件提供了许多不错的属性:
通过独立测试,您可以在任何地方添加测试、删除测试、重新排序测试,而不会对其他测试产生意外影响。
您可以单独改进测试,而不必考虑对其他测试的影响,例如简化测试的内部工作。
无需查看其他测试即可理解每个测试,并且在测试失败的情况下更容易找到失败的原因。
独立测试分别成功和失败。对于相关测试,如果一项测试失败,后续测试也可能失败。
您可以有选择地执行测试,例如在测试用例执行期间节省时间。
| 归档时间: |
|
| 查看次数: |
598 次 |
| 最近记录: |