茉莉与助手

时间:2018-09-29 10:31:35

标签: javascript node.js jasmine

我是Jasmine测试的新手,我需要测试nodejs express应用程序。 在所有测试之前,我找不到关于茉莉花助手的任何文档。

我只是尝试添加

beforeAll(async()=>{
   ...
});
afterAll(async()=>{
   ...
});

在我的/spec/helpers/myhelper.js中,这些函数在所有代码之前和之后执行,但是我没有在帮助程序中找到有关此行为的文档。这是标准行为吗?

是否可以在myhelper.js中创建我的辅助函数并在测试期间调用该函数?怎么样?

我实际的/spec/helpers/myhelper.js是:

let server = require("../../app");
console.log('server started before tests....');

function testMethod(){
    console.log("test helper called");
}

如何从测试中调用测试助手方法?

我正在使用3.2.1版本的茉莉花

1 个答案:

答案 0 :(得分:4)

茉莉花测试用例位于describe块中。

  • 每个describe块都有自己的beforeAllafterAllbeforeEachafterEach
  • 另一个describe块中可以有describe

通常,我有一个规格文件,其中一个被测单元包含一个describe块。 describe的这4个功能将为被测单元的测试用例建立和拆卸。

据我所知,如果要将您的助手功能分离到新文件中,则可以正常导入它并在设置和拆卸目标describe时执行它。但是我从未做过,因为我从未遇到过某些类具有相同的设置或拆卸过程的情况。

但是您可以通过以下方式实现这一目标:

使用助手功能创建服务器

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);

希望这会有所帮助:)