在用 Jest或 Jasmine编写单元测试时,什么时候使用 describe?
Jest
Jasmine
describe
什么时候使用 it?
it
我经常这样
describe('my beverage', () => { test('is delicious', () => { }); });
什么时候是一个新的 describe或新的 it?
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用于测试。
正如开玩笑的医生所说,test和 it是一样的: Https://jestjs.io/docs/en/api#testname-fn-timeout
test
Test (name,fn,timeout) 也在别名下: it (name、 fn、 timeout)
Test (name,fn,timeout)
也在别名下: it (name、 fn、 timeout)
和 describe只是当你喜欢你的测试被组织成小组: Https://jestjs.io/docs/en/api#describename-fn
描述(名称)
describe(name, fn)创建一个块,将几个相关的测试组合在一起。例如,如果你有一个 myBeverage对象,应该是美味的,但不酸,你可以测试它与:
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(); }); });
这不是必需的-您可以直接在顶层编写测试块。但是,如果您希望将测试组织成小组,那么这可能很方便。