在描述和开玩笑之间有什么区别?

Bro*_*mie 45 jasmine jestjs

在使用describe()时,在jest或jasmine中编写单元测试时?你什么时候用它()?

我经常这样做

describe('App Name', function () {
    it('test ....', function () {
    })'
})
Run Code Online (Sandbox Code Playgroud)

什么时候进行新的describe()?还是一个新的()?

Int*_*ang 75

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() { ... });
  });
});
Run Code Online (Sandbox Code Playgroud)


Sey*_*don 47

正如我在这个问题中提到的,describe用于分组,it用于测试。

正如笑话文档所说,test并且it是相同的:https : //jestjs.io/docs/en/api#testname-fn-timeout

测试(名称,fn,超时)

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

并且describe仅适用于您希望将测试组织成组的情况:https : //jestjs.io/docs/en/api#describename-fn

描述(名称,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();
  });
});
Run Code Online (Sandbox Code Playgroud)

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