我正在测试读写(到服务器,到mongo数据库)。我知道,我不应该这样做,我应该使用模拟程序,...但是无论如何,我想编写一个文档,阅读该文档以确保其正确编写,然后删除该文档,然后确认它是没了 因此,我有2个问题已经解决,但是使用了2个技巧。
1)如何逐步传递文档的mongo _id。我想在我的Jasmine代码中有一个简单的变量,可以从每个测试中读取和写入。我现在通过在要测试的实际Angular模块中创建一个变量,然后在该代码中读取和写入一个变量来对其进行破解。
2)由于我必须等待每个IO操作才能继续,因此我setTimeout(() => {done();}, 2000);
在一组嵌套beforeEach(function(done){
部分中利用了该功能。
如果有的话,我想学习简单,更好的方法。
谢谢
您正在做的事情称为集成测试。这样做没什么问题,但是我通常使用Angular的E2E工具编写集成测试。
也就是说,只需将值保存在全局变量中,它将更改每个测试。一些伪代码
describe('integration test', () => {
let id;
it('should create a document', () => {
// code to create item and return id
id = _id;
}
it('should load document', () => {
console.log(id); // should be value from create test
}
it('should delete document, () => {
console.log(id); // should have value from create test
}
}
由于从未在中设置ID值,beforeEach()
因此它将在同describe()
一块中的两次测试之间保留其值。
在编写单元测试时,请注意这一点,因为测试必须以特定的顺序运行才能执行。但是,人们希望E2E /集成测试按顺序运行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句