禁用Jasmine期望,如xdescribe或xit?

时间:2016-07-05 16:40:15

标签: javascript database jasmine protractor angularjs-e2e

Jasmine website我看到我们可以按xdescribexit个别规格停用套件。有没有办法只禁用期望(如xexpect)?

我之所以这么说是因为我正在使用Protractor编写e2e测试,而在我们的持续集成中,我们还没有(如果有的话)可以访问数据库,尽管我们在本地工作例如,可以通过访问数据库来运行真正的端到端测试。

我想将个人期望标记为可选,具体取决于配置或环境变量。做一次切换,然后在expect周围创建一个包装器会很好,只有当我们在本地运行测试(访问数据库)时才会失败。

例如,我可以创建一个新的规范系列:

if (process.env.DB_AVAILABLE) {
  dbit = it;
} else {
  dbit = xit;
}

并编写依赖于数据库连接的规范,如下所示:

dbit('creates new user', function () {});

有没有办法对expect进行同样的操作(例如dbexpect)?

如果我的方法存在根本性的问题,请不要阻止它让我知道。

1 个答案:

答案 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);