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

在用 JestJasmine编写单元测试时,什么时候使用 describe

什么时候使用 it

我经常这样

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

什么时候是一个新的 describe或新的 it

111216 次浏览

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() { ... });
});
});

我更多地考虑这对测试输出的影响。通过使用描述或多层次的描述,您可以分组您的输出的可读性。

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

正如开玩笑的医生所说,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)创建一个块,将几个相关的测试组合在一起。例如,如果你有一个 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();
});
});

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