2016-09-20 92 views
1

这是我的期望:量角器 'toContain' 错误

expect(mandatoryFields[index].getAttribute('class')).toContain('error'); 

这是在控制台中的错误:

预期['formControl NG-原始NG-不变NG-有效NG-NG-空有效最大长度错误']包含'错误'。

尽管该类包含ERROR类名称,量角器仍然抛出错误。可能是什么原因?任何帮助!

+0

http://jsfiddle.net/ZvkuP/21/ ,很困惑 –

+0

http://jsfiddle.net/ZvkuP/22/ 只是通过添加角度方括号,它开始失败。 JuliRalp在这里需要你的帮助 –

回答

1

而不是toContain尝试使用toMatch。 toContain用于检查所需值是否存在于数组中。而toMatch使用正则表达式来验证任何值中存在的文本。

+1

但我在相同的spec文件中使用它:“** expect(coBorrowerVisibility.getAttribute('class'))。toContain('formInactive'); **”这很好。所以如果它在这种情况下工作,为什么它不在上述地方工作 –

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 
       } 
      } 
     } 
    } 
]);