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