如何編寫綜合的單元測試方案(4)

發表于:2012-06-27來源:伯樂在線作者:李瓊點擊數: 標簽:單元測試
接下來兩個測試針對HasErrors這個屬性和ErrorsChanged事件。 [TestMethod] 1 2 3 4 5 6 public void Person_FirstName_Set_HasErrorsIsFalse() { var person = new Person( Adam , Smith ); person

  接下來兩個測試針對HasErrors這個屬性和ErrorsChanged事件。

  [TestMethod]

1
2
3
4
5
6
public void Person_FirstName_Set_HasErrorsIsFalse()
 {
 var person = new Person("Adam", "Smith");
 person.FirstName = "Bob";
 Assert.IsFalse(person.HasErrors);
 }

  [TestMethod]

1
2
3
4
5
6
7
public void Person_FirstName_Set_ErrorsChanged_Did_Not_Fire()
 {
 var person = new Person("Adam", "Smith");
 var errorsChangedAssert = new ErrorsChangedEventAssert(person);
 person.FirstName = "Bob";
 errorsChangedAssert.ExpectNothing();
 }

  目前我們有8個測試了,這意味著當我們修改FirstName的屬性值,我們要考慮會發生改變的每件事。但是這不算完。我們還需要確保沒有別的會被意外改變。理論上說,這意味著更多的斷言和相當數量的測試,但是,接下來我們采用取巧的方法,用ChangeAssert方法來替代HasErrors測試。

  [TestMethod]

1
2
3
4
5
6
7
public void Person_FirstName_Set_Nothing_Unexpected_Changed()
 {
 var person = new Person("Adam", "Smith");
 var changeAssert = new ChangeAssert(person);
 person.FirstName = "Bob";
 changeAssert.AssertOnlyChangesAre("FirstName", "FullName", "IsChanged");
 }

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97