2017-04-18 52 views
0

我正在嘗試學習Angular的API進行測試。我目前正在讀下面的教程:協助清理Angular 2組件測試教程

https://angular.io/docs/ts/latest/guide/testing.html#!#atu-apis

我的下面的代碼是如何工作的認識不符合,而我正在測試我所看到的。正如我所瞭解的代碼,第二個方法是將元素內容重新設置爲「測試標題」,並在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')進行以下更改時, toContain('Test'),測試仍然通過。這可以看出,在活生生的例子:

https://angular.io/resources/live-examples/testing/ts/banner-inline-specs.eplnkr.html

enter image description here

我得到了我自己的測試相同的結果。我假設測試應該失敗,但事實並非如此。

謝謝。

回答

0

這是因爲你可以看到在Jasmine's Default Matcher's你沒有使用正確的。嘗試更改.toContain.toEqual :)

什麼.toContain所做的是檢查您所搜索的是否有SOMEWHERE那裏。

+0

謝謝。我很感激。 – Aaron

+0

很高興可以提供幫助。 – 2017-04-19 06:01:19