在Jest中describe和it有什么区别?

tmb3ates  于 2023-08-01  发布在  Jest
关注(0)|答案(4)|浏览(543)

JestJasmine中编写单元测试时,何时使用describe
什么时候使用it
我通常都是这样

describe('my beverage', () => {
  test('is delicious', () => {
  });
});

字符串
什么时候需要新的describe或新的it

0g0grzrc

0g0grzrc1#

describe将测试套件分解为组件。根据您的测试策略,您可能会对类中的每个函数、插件的每个模块或每个面向用户的功能块进行描述。
您还可以嵌套描述以进一步细分套件。
it是执行单个测试的地方。您应该能够像一个小句子一样描述每个测试,例如“它在设置半径时计算面积”。你不应该再进一步细分测试了--如果你觉得需要的话,可以使用describe

describe('Circle class', function() {
  describe('area is calculated when', function() {
    it('sets the radius', function() { ... });
    it('sets the diameter', function() { ... });
    it('sets the circumference', function() { ... });
  });
});

字符串

fae0ux8s

fae0ux8s2#

正如我在这篇文章中提到的questiondescribe用于分组,it用于测试。
正如jest文档所说,testit是相同的:https://jestjs.io/docs/en/api#testname-fn-timeout

test(name,fn,timeout)

别名:it(name,fn,timeout)
describe只是用于您希望将测试组织成组的情况:https://jestjs.io/docs/en/api#describename-fn
describe(name,fn)
describe(name, fn)创建一个块,将几个相关的测试组合在一起。例如,如果你有一个myBeverage对象,它应该是美味的但不是酸的,你可以用以下方法测试它:

const myBeverage = {
  delicious: true,
  sour: false,
};

describe('my beverage', () => {
  test('is delicious', () => {
    expect(myBeverage.delicious).toBeTruthy();
  });

  test('is not sour', () => {
    expect(myBeverage.sour).toBeFalsy();
  });
});

字符串
这不是必需的-您可以直接在顶层编写测试块。但如果您希望将测试组织成组,这会很方便。

vnzz0bqm

vnzz0bqm3#

我更多地从对测试输出的影响来考虑这一点。通过使用describe或多个级别的describe,您可以对输出进行分组以提高可读性。

anauzrmj

anauzrmj4#

简单地说,describe是组,ittest实际上是单元测试。
因此,describe可以嵌套在describe中,但it不能。

相关问题