javascript - 禁用 Jasmine 期望,例如 xdescribe 或 xit?

标签 javascript database jasmine protractor angularjs-e2e

关于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)做同样的事情?

如果我的方法存在根本性错误,请不要隐瞒并告诉我。

最佳答案

您可以通过使用空函数实现所有方法/属性来创建您自己的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);

关于javascript - 禁用 Jasmine 期望,例如 xdescribe 或 xit?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208547/

相关文章:

javascript - 当 Promise 永远不会解决时会发生什么?

javascript - React React setState 第一次尝试时未更新

sql - 查询表的外键关系

sql - 数据库模式不同步——需要在不丢失数据的情况下保持最新

unit-testing - QUnit 与 Jasmine?

javascript - 如何模拟在 React JS 组件中创建的实例?

javascript - 调用带有可变参数的函数的有效方法是什么?

javascript - 将 <script> 标记应用于页面的唯一部分

PHP - 深入数据并使用循环进行循环

javascript - 如何测试 Jasmine 中的方法是否只被调用一次而不是第二次?