在Jasmine website我看到我们可以按xdescribe
或xit
个别规格停用套件。有没有办法只禁用期望(如xexpect
)?
我之所以这么说是因为我正在使用Protractor编写e2e测试,而在我们的持续集成中,我们还没有(如果有的话)可以访问数据库,尽管我们在本地工作例如,可以通过访问数据库来运行真正的端到端测试。
我想将个人期望标记为可选,具体取决于配置或环境变量。做一次切换,然后在expect周围创建一个包装器会很好,只有当我们在本地运行测试(访问数据库)时才会失败。
例如,我可以创建一个新的规范系列:
if (process.env.DB_AVAILABLE) {
dbit = it;
} else {
dbit = xit;
}
并编写依赖于数据库连接的规范,如下所示:
dbit('creates new user', function () {});
有没有办法对expect
进行同样的操作(例如dbexpect
)?
如果我的方法存在根本性的问题,请不要阻止它让我知道。
答案 0 :(得分:2)
您可以通过使用空函数实现所有方法/属性来创建自己的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);