使用mocha / chai进行各种测试的可重用const

时间:2018-03-05 17:13:52

标签: node.js unit-testing mocha sinon chai

我正在使用mocha / chai运行一系列测试。

我尽量让这些测试尽可能简单,以便于阅读。这就是为什么我使用了很多it()声明。

对于这些测试中的每一个,我使用相同的const。 每次我只想宣布它一次并完成它时,而不是重新声明它。

describe('#getLastAchievements', async function (): Promise<void> {
        it("should return an array", async function (): Promise<void> {
            const lastAch: any[] = await achievementsServiceFunctions.getLastAchievements(idAdmin, 3);
            expect(lastAch).not.to.be.equal(null);
            expect(lastAch).to.be.an('array');
        });

        it('should not be empty', async function (): Promise<void> {
            const lastAch: Object[] = await achievementsServiceFunctions.getLastAchievements(idAdmin, 3);
            expect(lastAch.length).to.be.above(0);
        });

我尝试以各种方式声明我的const,但每次测试都没有运行或者conts未定义。这是我试过的:

- 在it()

之前声明它

- 在before()函数中声明它

- 在匿名函数中声明它,然后在此函数中包含it()

- 在describe()函数之外声明它

有没有办法只声明一次这个const来重复使用它进行各种测试?

1 个答案:

答案 0 :(得分:1)

你可以在beforeEach中声明东西,如果它们对于每个它都是相同的()。

示例:

describe('myTest', () => {
    let foo;

    beforeEach(() => {
        foo = new Foo();
    });

    it('test 1', () => {
        //do something with foo
    });

    it('test 2', () => {
        //do something with foo
    });
})