禁用 Jasmine 期望,例如 xdescribe 或 xit?
Disable Jasmine expectation, like xdescribe or xit?
上Jasmine website I see that we can disable suites by xdescribe
or individual specs by xit
。有没有办法只禁用一个期望(比如 xexpect
)?
我问这个问题的原因是因为我正在用 Protractor 编写 e2e 测试,在我们的持续集成中,我们还没有(如果有的话)访问数据库,尽管我们可以在本地访问 运行 例如,可以访问数据库的真正端到端测试。
我想根据配置或环境变量将个人期望标记为可选。最好进行一次切换,然后围绕 expect 创建一个包装器,只有在我们 运行 在本地测试(可以访问数据库)时才会失败。
例如,我可以创建一个新的规范系列:
if (process.env.DB_AVAILABLE) {
dbit = it;
} else {
dbit = xit;
}
并编写依赖于数据库连接的规范如下:
dbit('creates new user', function () {});
有没有办法对 expect
(例如 dbexpect
)做同样的事情?
如果我的方法有根本性的错误,请不要隐瞒并告诉我。
您可以通过使用空函数实现所有 methods/properties 来创建自己的 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);
上Jasmine website I see that we can disable suites by xdescribe
or individual specs by xit
。有没有办法只禁用一个期望(比如 xexpect
)?
我问这个问题的原因是因为我正在用 Protractor 编写 e2e 测试,在我们的持续集成中,我们还没有(如果有的话)访问数据库,尽管我们可以在本地访问 运行 例如,可以访问数据库的真正端到端测试。
我想根据配置或环境变量将个人期望标记为可选。最好进行一次切换,然后围绕 expect 创建一个包装器,只有在我们 运行 在本地测试(可以访问数据库)时才会失败。
例如,我可以创建一个新的规范系列:
if (process.env.DB_AVAILABLE) {
dbit = it;
} else {
dbit = xit;
}
并编写依赖于数据库连接的规范如下:
dbit('creates new user', function () {});
有没有办法对 expect
(例如 dbexpect
)做同样的事情?
如果我的方法有根本性的错误,请不要隐瞒并告诉我。
您可以通过使用空函数实现所有 methods/properties 来创建自己的 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);