我正在进行角度2 e2e测试。我需要有条件地添加it
块。必须检查计数值如果其值大于0则应运行测试,否则应运行另一个。这是代码:
describe('Check insiders:', function () {
beforeEach(function (done) {
element(by.css('span.insider-count')).getText().then(function(total){
count = total;
console.log(count);
//browser.pause();
done();
});
});
if (count > 0) {
it('insiders found', () => {
expect(count).toBeGreaterThan(0);
});
} else {
it('No insiders found', () => {
// do nothing
//expect(count).toBe(0);
});
}
});
即使count变量的值大于零,它也始终运行else部分。任何帮助将不胜感激。
答案 0 :(得分:3)
这是因为当您开始测试时会处理it
,describe
和所有jasmine
描述符,这意味着您的条件将在测试获取值之前进行测试,这就是为什么它的原因始终处理相同的值,因此结果相同。
您可以通过在普通it
区域内移动您的条件来避免它:
it('insiders test', () => {
if(count > 0){
expect(count).toBeGreaterThan(0);
} else {
expect(true).toBe(true);
}
});
话虽如此,我不明白你的逻辑,因为你基本上做“如果计数是> 0,断言它是> 0,否则不要”这是一个不能测试的失败。