gpt4 book ai didi

javascript - 如何使用 Jest 正确实现这样的测试套件架构?

转载 作者:行者123 更新时间:2023-12-04 13:53:32 27 4
gpt4 key购买 nike

我已经检查了所有 guidesexamples在 Jest 文档网站上,但没有找到任何可以为我的问题提供答案的内容。
我正在寻找一种模式,它允许我使用 Jest 分别为许多不同的功能(在我的情况下是 getter)运行测试用例。
至于现在,在我的 example.test.ts文件,我有以下内容:

import { getterOne, getterTwo, getterThree, ... } from getters;

describe('test suite', () => {
beforeAll(async () => {
//connect to MongoDB
})

afterAll(async () => {
//disconnect from MongoDB
})

//request token from DB, to check it
it('key', async () => {
const key = await KeysModel.findOne(_id: 'any').lean();
expect(key).toMatchSnapshot({
field: expect.any(String),
});
});

/**
* predefine key and some other things
* but I can't call key here, because describe doesn't support
* async/await, as it should be synchronous
*/


//test separate getterOne with key variable as an argument

//test separate getterTwo with key variable as an argument

//test separate getterThree with key variable as an argument
})
但众所周知,我不能在 it 中使用已经定义好的 key 。案件。所以我可以在顶层再次定义键, 但是 :
  • 是否可以为每个 getter 测试用例重新定义关键变量?如果我有这么多 setter/getter ,我会有 xN绝对没用的请求。
  • 据我了解,我不能使用 async/awaitdescribe ,因为不支持从“describe”返回 Promise。测试必须同步定义。

  • 所以我不是问,怎么写代码,而是 在这种情况下,编写依赖测试用例的正确模式是什么?
    有人可以提供一个例子吗?我应该写更多 testdescribe或者通常的做法与此略有不同?
    应该使用什么 Jest 方法以及以什么顺序?

    As for now, I am declaring empty variable via let keyword, and use them, like that:

    describe('test suite', () => {
    beforeAll(async () => {
    //connect to MongoDB
    })

    afterAll(async () => {
    //disconnect from MongoDB
    })

    describe('inside', () => {
    let key;

    beforeAll(async () => {
    key = await KeyModel.findOne();
    })

    test('getterOne', async () => {
    const res = await getterOne(key);
    expect(res).toMatchSnapshot({
    id: expect.any(Number)
    });
    });

    //other test with keys..

    })
    })
    它被认为是一种好的做法吗?

    最佳答案

    至于现在,我正在使用与提议的相同的结构。但我也感谢Estus Flask为我指明了这个方向。我不使用模型,主要是因为我测试的不仅仅是 functions ,而且还有数据库存在和数据持久性。

    describe('test suite', () => {
    beforeAll(async () => {
    //connect to MongoDB
    })

    afterAll(async () => {
    //disconnect from MongoDB
    })

    /**
    * another describe stage below
    * with its own after and before and describe stages
    */

    })

    关于javascript - 如何使用 Jest 正确实现这样的测试套件架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66706033/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com