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() { ... });
});
});
正如我在这个 question 中提到的,describe
用于分组,it
用于测试。
正如开玩笑的文档所说,test
和 it
是相同的: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
描述(名称,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();
});
});
这不是必需的 - 您可以直接在顶层编写测试块。但是,如果您希望将测试组织成组,这会很方便。
我更多地从对测试输出的影响来考虑这一点。通过使用 describe 或多个级别的 describe,您可以对输出进行分组以提高可读性。