目前,我有一些测试用例,我只想在某些条件下执行。
it ('user is able to log in', function() {
if(siteAllowsLogin) {
.....
}
使用上面的语法会导致sitesNotAllowingLogin通过此测试。我知道有一个解决方案可以将测试标记为PENDING,但我更倾向于测试没有显示,如果它不适用。
如果可能的话,我还想将逻辑保留在测试用例中。因此,将if块保留在测试用例中。
如果不满足条件,如何跳过此测试的任何建议,以便它不会在结果上显示为PENDING或PASSED。
非常感谢帮助。
答案 0 :(得分:3)
如果提供的谓词/状态为真,您可以使用前面的ignore
函数来抑制测试:
var ignore = function(exp){return{it:((typeof exp==='function')?exp():exp)?function(){}:it}};
describe('Suite 1', function() {
it("test a", function() {
expect(1).toEqual(1);
});
ignore(true).it("test b", function() {
expect(1).toEqual(1);
});
ignore(skip).it("test c", function() {
expect(1).toEqual(1);
});
function skip(){
return true;
}
});