如何编写综合的单元测试方案(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.ltesting.net