主角中hasClass的Jasmine 2自定义匹配器
我将我的Jasmine 1.3升级到2.0,所以我添加了一个自定义匹配器来检查css是否存在主角中hasClass的Jasmine 2自定义匹配器,jasmine,protractor,karma-jasmine,Jasmine,Protractor,Karma Jasmine,我将我的Jasmine 1.3升级到2.0,所以我添加了一个自定义匹配器来检查css是否存在 hasClass = function(actual,expected){ return actual.getAttribute('class').then(function (classes) { return classes.split(' ').indexOf(expected) !== -1; }); } 但当我升级到Jasmine 2时,
hasClass = function(actual,expected){
return actual.getAttribute('class').then(function (classes) {
return classes.split(' ').indexOf(expected) !== -1;
});
}
但当我升级到Jasmine 2时,Proactor会抛出错误,因为它期望返回,但下面是异步过程
hasClass = function(){
return compare: function(actual,expected){
return actual.getAttribute('class').then(function (classes) {
return {pass: classes.split(' ').indexOf(expected) !== -1};
});
}
}
如何测试元素中存在的类?我不想使用jasmine jquery 通过的
应该是一个承诺,而不是一次解决。在每次
之前,请尝试将其放入您的:
this.addMatchers({
hasClass: function() {
return {
compare: function(actual, expected) {
return {
pass: actual.getAttribute('class').then(function(classes) {
return classes.split(' ').indexOf(expected) !== -1;
})
};
}
};
}
});
只是想知道你为什么需要上课?不久前我也使用过,但后来我意识到量角器E2E测试的目标是测试功能,而不是内部实现。因此,例如,div仍然可以有这个类,但不能正常工作,那么就不需要检查它是否有这个类。@IgorShubovych这取决于它。假设您单击某个内容,然后您想显示其他div,然后您如何测试它,或者说同一个div有成功颜色和失败颜色,然后您如何在不同的场景中测试(field.getCssValue('border-color')).toBe('rgb(242,88,5'));它是否也检查外部css属性??我一直在深入研究Jasmine 2代码,但我不知道它在哪里处理承诺。相反,它似乎只是检查“pass”的整体真实性(承诺对象总是看起来真实的,不管它实际如何解决/失败)。你确定它能按预期工作,而不是总是看起来通过吗?量角器会覆盖Jasmine,使其工作。你要查找的代码在中