Javascript 茉莉花和帮手

Javascript 茉莉花和帮手,javascript,node.js,jasmine,Javascript,Node.js,Jasmine,我是Jasmine测试新手,我需要测试一个nodejs express应用程序。 我没有找到任何关于jasmine助手的文档,这些文档在所有测试之前都会被调用 只是试着我发现 beforeAll(async()=>{ ... }); afterAll(async()=>{ ... }); 在my/spec/helpers/myhelper.js中,这些函数是在所有代码之后和之前执行的,但我没有在helper中找到有关此行为的文档。这是一种标准行为吗 是否可以在myhel

我是Jasmine测试新手,我需要测试一个nodejs express应用程序。 我没有找到任何关于jasmine助手的文档,这些文档在所有测试之前都会被调用

只是试着我发现

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.1

jasmine测试用例在
描述
块中

  • 每个
    描述
    块都有自己的
    之前
    之后
    每次之前
    每次之后
  • 在另一个
    descripe
    块中可以有
    descripe
通常,我有一个spec文件,其中包括一个测试单元的
descripe
块。此测试单元的测试用例的设置和拆卸将在本
描述
的4个功能中进行

据我所知,如果您想将helper函数分离到新文件中,您可以正常导入它,并在target
description
的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应用程序中,该应用程序是根据测试用例新创建的。