Jest中xit()与describe()、it()的配合使用方法问询
Jest中
xit()与describe()/it()的配合用法 xit()是Jest里用来临时跳过单个测试用例的工具,和describe()、it()的配合非常灵活,主要有这几种常见场景:
跳过单个测试用例
把原本的it()换成xit(),这个测试就会被标记为「跳过」(测试报告里会显示为skipped),同套件里的其他it()测试会正常执行。适合某个测试还没写完、或者暂时不需要跑的情况:
describe('用户登录模块', () => { it('正常账号密码能登录', () => { expect(login('validUser', 'validPass')).toBe(true); }); xit('错误密码登录失败', () => { // 这个测试不会执行,保留代码结构方便后续恢复 expect(login('validUser', 'wrongPass')).toBe(false); }); });
注:xit()和it.skip()是完全等价的,写法任选即可。
在测试套件中混合使用
一个describe块里可以同时放正常的it()和跳过的xit(),互不干扰——正常测试跑逻辑,跳过的测试仅保留结构:
describe('购物车功能', () => { it('添加商品到购物车', () => { expect(addToCart('apple')).toHaveLength(1); }); xit('删除购物车商品', () => { // 比如删除功能还在开发,先跳过这个测试 expect(removeFromCart('apple')).toHaveLength(0); }); it('修改商品数量', () => { expect(updateCartQuantity('apple', 2)).toHaveProperty('quantity', 2); }); });
配合xdescribe()跳过整个套件
如果要跳过一整个describe下的所有测试,可以用xdescribe()(等同于describe.skip()),不管里面是it()还是xit(),全都会被跳过:
xdescribe('支付模块(暂不测试)', () => { it('支付宝支付成功', () => { expect(alipayPay(100)).toBe(true); }); it('微信支付成功', () => { expect(wechatPay(100)).toBe(true); }); });
内容的提问来源于stack exchange,提问作者Sharath
相关产品推荐
相关产品推荐

