我想验证AssignedAllUsers List的文本可以包含test1或test2但它不应该包含test3
我正在使用以下但不确定我遇到错误的代码有什么问题:AllAssignee.toContain is not a function
this.IncList = element.all(by.repeater("incident in $ctrl.allIncidents"));
this.AssignedAllUsers = this.IncList.all(by.css('[aria-label="Change assignee to "]'));
AssignedAllUsers.getText().then(function(AllAssignee){
console.log("AllAssignee = "+AllAssignee);
expect((AllAssignee.toContain(Logindata.Username0)) || (AllAssignee.toContain(Logindata.Username1)) && (AllAssignee.not.toContain(Logindata.Username2)));
});
答案 0 :(得分:2)
您的错误是语法问题。 toContain
属于被测试的值之外,换句话说,在expect
语句之后的第一组括号之外。
你有这个:
expect((AllAssignee.toContain(Logindata.Username0))
。你还有一套额外的括号,但我认为这并不重要。
您需要关闭AllAssignee
来电,它应该是:expect(AllAssignee).toContain(Logindata.Username0)
要回答您的其他问题,我们无需在expect
语句中真正做到这一点。由于列表永远不应该包含test3,这是你的第一个断言:
expect(AllAssignee).not.toContain(test3);
至于你的其他预期值,如果你不知道哪一个存在,只需创建一个数组并将两个可能的值放在其中。然后你可以断言数组包含test1或test2:
var myArray = ['test1', 'test2'];
expect(myArray).toContain(AllAssignee);
的相关问题
答案 1 :(得分:1)
能够解决代码问题:
expect(AllAssignee).toContain('test1' || 'test2');