首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >describe和Jest中的describe有什么不同?

describe和Jest中的describe有什么不同?
EN

Stack Overflow用户
提问于 2015-08-18 00:25:23
回答 3查看 72.2K关注 0票数 118

在用JestJasmine编写单元测试时,何时使用describe

什么时候使用it

我通常是这样做的

代码语言:javascript
复制
describe('my beverage', () => {
  test('is delicious', () => {
  });
});

什么时候需要新的describe或新的it

EN

回答 3

Stack Overflow用户

发布于 2015-08-18 00:33:36

describe将您的测试套件分解为组件。根据您的测试策略,您可能对类中的每个函数、插件的每个模块或每个面向用户的功能部分都有一个describe。

您还可以嵌套describes以进一步细分套件。

it是您执行单独测试的地方。你应该能够用一句话来描述每个测试,比如“当设置半径时,它会计算面积”。您不应该进一步细分测试--如果您觉得需要的话,可以使用describe

代码语言:javascript
复制
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() { ... });
  });
});
票数 159
EN

Stack Overflow用户

发布于 2020-01-23 19:12:48

正如我在这篇question中提到的,describe用于分组,it用于测试。

正如jest文档所说,testit是相同的:https://jestjs.io/docs/en/api#testname-fn-timeout

测试(名称,fn,超时)

也在别名下: it(name,fn,timeout)

当您希望将测试组织成组时,就可以使用describehttps://jestjs.io/docs/en/api#describename-fn

describe(名称,fn)

describe(name, fn)创建了一个将多个相关测试分组在一起的块。例如,如果你有一个myBeverage对象,它应该是美味但不酸的,你可以用以下命令测试它:

代码语言:javascript
复制
const myBeverage = {
  delicious: true,
  sour: false,
};

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

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

这不是必需的-您可以直接在顶层编写测试块。但是,如果您更喜欢将测试组织到组中,这可能会很方便。

票数 56
EN

Stack Overflow用户

发布于 2019-10-16 11:31:26

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32055287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档