这是我的期望:
expect(mandatoryFields[index].getAttribute('class')).toContain('error');
这是控制台中的错误:
预期['formControl ng-pristine ng-untouched ng-valid ng-empty ng-valid-maxlength error']包含'错误'。
虽然该类包含ERROR类名,但量角器仍然会抛出错误。可能是什么原因?任何帮助!!!
答案 0 :(得分:1)
而不是toContain
尝试使用toMatch
。 toContain用于检查数组中是否存在所需的值。而toMatch使用正则表达式来验证任何值中的文本。
答案 1 :(得分:0)
您可以尝试在beforeEach()中添加自定义匹配器,然后调用expect(mandatoryFields[index]).toHaveClass('error');
jasmine.addMatchers([
toHaveClass: function () {
return {
compare: function (element, className) {
return {
pass: element.getAttribute('class').then(function (classes) {
return classes.split(' ').indexOf(className) !== -1||classes.split(' ').indexOf(className+"\n") !== -1;
}),
message: "Expected elemenet to have class: "+className
}
},
negativeCompare: function(element, className){
return {
pass: element.getAttribute('class').then(function (classes) {
return classes.split(' ').indexOf(className) !== -1||classes.split(' ').indexOf(className+"\n") === -1;
}),
message: "Expected element not to have class: " + className
}
}
}
}
]);