如何将一个 Jasmine JavaScript 测试的值传递给另一个测试
How to pass a value from one Jasmine JavaScript test to another test
我正在测试读写(到服务器,到 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 / 集成测试按顺序 运行。
我正在测试读写(到服务器,到 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 / 集成测试按顺序 运行。