我正在尝试学习Angular的API进行测试。我目前正在阅读以下教程:
https://angular.io/docs/ts/latest/guide/testing.html#!#atu-apis
我对以下代码如何工作的理解与我在运行测试时看到的内容不符。据我理解代码,第二种方法是将元素内容重置为'Test Title'并在toContain方法中检查相等性。
it('should display original title', () => {
fixture.detectChanges();
expect(el.textContent).toContain(comp.title);
});
it('should display a different test title', () => {
comp.title = 'Test Title';
fixture.detectChanges();
expect(el.textContent).toContain('Test Title');
});
然而,当我玩代码并从toContain('Test Title')进行以下更改时;为了得到('测试'),测试仍然通过。这可以在实例中看到:
https://angular.io/resources/live-examples/testing/ts/banner-inline-specs.eplnkr.html
我在自己的测试中得到了相同的结果。我假设测试应该失败,但事实并非如此。
感谢。
答案 0 :(得分:0)
那是因为你可以在Jasmine's Default Matcher's中看到你没有使用正确的。尝试使用.toContain
更改.toEqual
:)
.toContain
所做的是检查您搜索的内容是否在那里。