Javascript 茉莉花和帮手
我是Jasmine测试新手,我需要测试一个nodejs express应用程序。 我没有找到任何关于jasmine助手的文档,这些文档在所有测试之前都会被调用 只是试着我发现Javascript 茉莉花和帮手,javascript,node.js,jasmine,Javascript,Node.js,Jasmine,我是Jasmine测试新手,我需要测试一个nodejs express应用程序。 我没有找到任何关于jasmine助手的文档,这些文档在所有测试之前都会被调用 只是试着我发现 beforeAll(async()=>{ ... }); afterAll(async()=>{ ... }); 在my/spec/helpers/myhelper.js中,这些函数是在所有代码之后和之前执行的,但我没有在helper中找到有关此行为的文档。这是一种标准行为吗 是否可以在myhel
beforeAll(async()=>{
...
});
afterAll(async()=>{
...
});
在my/spec/helpers/myhelper.js中,这些函数是在所有代码之后和之前执行的,但我没有在helper中找到有关此行为的文档。这是一种标准行为吗
是否可以在myhelper.js中创建my helper函数并在测试期间调用此函数?怎么做
我的实际/spec/helpers/myhelper.js是:
let server = require("../../app");
console.log('server started before tests....');
function testMethod(){
console.log("test helper called");
}
如何从我的测试调用我的测试助手方法?
我正在使用jasmine版本3.2.1jasmine测试用例在
描述
块中
- 每个
块都有自己的描述
,之前
,之后
,每次之前
每次之后
- 在另一个
块中可以有descripe
李>descripe
descripe
块。此测试单元的测试用例的设置和拆卸将在本描述的4个功能中进行
据我所知,如果您想将helper函数分离到新文件中,您可以正常导入它,并在targetdescription
的setup和teardown中执行它。但我从未这样做过,因为我从未遇到过某些类具有相同设置或拆卸过程的场景
但以下是实现这一目标的方法:
在helper函数中创建服务器
function setupServer() {
let server = require("../../app");
console.log('server started before tests....');
console.log("test helper called");
return server;
}
module.exports = { setupServer };
在等级库文件中:
const { setupServer } = require('/myhelper');
describe('some unit', () => {
let server;
beforeEach(() => {
server = setupServer();
});
it('some test', () => {});
});
或者如果你根本不需要回报。它可以短到:
beforeEach(setupServer);
希望这有帮助:)您通常应该有一个descripe
块,其中包含beforeal
或aftereal
方法,然后您的跑步者应该自动处理它们(即karma或mocha)beforeach(setupServer)
也鼓励使用此
上下文而不是返回值。是的,但不能从不同的测试中多次执行setupServer。示例:test1启动,服务器也在端口3000上启动litening,然后Test2启动,但当前使用的端口3000来自previuos测试,无法执行测试。然后我在寻找一个公共文件,在所有规范文件执行之前启动服务器。我明白了。我误解了你的问题。在这种情况下,我发现这个问题非常类似于。如果您的目的是以e2e样式(API wised)运行测试,那么上面的链接应该可以。但是,如果您只是想将此应用程序作为集成进行测试,我建议您隔离测试用例,避免启动整个应用程序。为了测试路由,我使用该特定路由并将其添加到express应用程序中,该应用程序是根据测试用例新创建的。