當我們執行這個測試時,會得到一個失敗提示信息“期望的屬性名‘FirstName’,但接收到的是’IsChanged’”。顯然,設置FirstName的屬性觸發了“IsChanged”標記,我們需要把它考慮在內。因此我們把它加入:
[TestMethod]
1
2
3
4
5
6
7
8
|
public void Person_FirstName_Set_PropertyChanged() { var person = new Person( "Adam" , "Smith" ); var eventAssert = new Granite.Testing.PropertyChangedEventAssert(person); person.FirstName = "Bob" ; eventAssert.SkipEvent(); //this was IsChanged eventAssert.Expect( "FirstName" ); } |
鑒于以上兩個測試,我們考慮當FirstName被修改時還有其他什么屬性會改變。查看API,IsChanged和FullName屬性會變化。
[TestMethod]
1
2
3
4
5
6
|
public void Person_FullName_Changed_By_Setting_FirstName() { var person = new Person( "Adam" , "Smith" ); person.FirstName = "Bob" ; Assert.AreEqual( "Bob Smith" , person.FullName); } |