当我们执行这个测试时,会得到一个失败提示信息“期望的属性名‘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); } |