在Jasmine网站上,我看到我们可以按xdescribe
禁用套件,也可以按xit
禁用单个规格。有没有办法只禁用期望(如xexpect
)?
我问这个问题的原因是因为我正在使用量角器编写 e2e 测试,在我们的持续集成中,我们还没有(如果有的话)可以访问数据库,尽管在本地我们可以运行真正的端到端测试访问数据库,例如。
我想根据配置或环境变量将个人期望标记为可选。最好进行一次切换,然后围绕期望创建一个包装器,只有在我们在本地运行测试(可以访问数据库)时才会失败。
例如,我可以创建一个新的规范系列:
if (process.env.DB_AVAILABLE) {
dbit = it;
} else {
dbit = xit;
}
并编写依赖于数据库连接的规范,如下所示:
dbit('creates new user', function () {});
有没有办法对expect
做同样的事情(例如 dbexpect
)?
如果我的方法有根本性的问题,不要退缩,让我知道。
使用空函数实现所有方法/属性来创建自己的xexpect
:
var xexpect = function() {
return xexpect;
};
Object.getOwnPropertyNames(jasmine.Expectation.prototype).forEach(function(name){
xexpect[name] = xexpect;
});
Object.defineProperty(xexpect, 'not', {get: xexpect});
用法:
xexpect(1).toBeGreaterThan(2);
xexpect(true).not.toEqual(true);