我将我的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然后承诺由protactor抛出错误,因为它期望返回但是下面是异步进程
hasClass = function(){
return compare: function(actual,expected){
return actual.getAttribute('class').then(function (classes) {
return {pass: classes.split(' ').indexOf(expected) !== -1};
});
}
}
如何测试类在元素中是否存在我不想使用jasmine-jquery?
答案 0 :(得分:6)
pass
应该是一个承诺,而不是一个承诺。尝试将其放在beforeEach
:
this.addMatchers({
hasClass: function() {
return {
compare: function(actual, expected) {
return {
pass: actual.getAttribute('class').then(function(classes) {
return classes.split(' ').indexOf(expected) !== -1;
})
};
}
};
}
});