• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 如何編寫綜合的單元測試方案(5)

    發表于:2012-06-27來源:伯樂在線作者:李瓊點擊數: 標簽:單元測試
    ChangeAssert簡單地通過映射獲取對象的狀態,因此,稍后你可以斷言到除了你指出的幾個具體屬性其他的沒變。 恭喜,你完成了你的第一個 測試用例 。完成

      ChangeAssert簡單地通過映射獲取對象的狀態,因此,稍后你可以斷言到除了你指出的幾個具體屬性其他的沒變。

      恭喜,你完成了你的第一個測試用例。完成一個,還有很多很多等著。

      為什么說是“一個”測試用例?

      那8個測試只是完成了覆蓋FirstName屬性從“Adam”修改成“Bob”這一個場景,在其他的值沒有在錯誤狀態、LastName不為null或空的情況下。讓我們看看測試用例的完整清單:

      ●將FirstName值設置為“Adam”

      ●將FirstName值設置為null

      ●將FirstName 設為空串

      ●在LastName值為null的情況下,執行case1-3

      ●在LastName 為空串的情況下,執行case1-3

      ●在FirstName值以null開頭的情況下,執行case1-5

      ●在FirstName值以空串開頭的情況下,執行case1-5

      目前我們看到了27個不同的場景。如果每個場景需要8個不同測試,僅僅為這一個屬性,我們需要執行至多216個測試。根據這種思路,這是相當瑣碎的一段代碼。因此我們該怎么做呢?

      測試也有代碼味道

      回看第一個測試用例的8個測試,它們都有同樣的設置和運算。唯一的不同是我們寫的斷言。在業界這個被稱為一個代碼味道。事實上,根據維基百科所列的這里應該有兩個代碼味道:

      ●Duplicated code

      ●重復的代碼

      ●Excessively long identifiers

      ●過長的標識符

      我們可以通過將斷言合并到一個測試來輕松地消除這兩個代碼味道:

      [TestMethod]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public void Person_FirstName_Set()
     {
     var person = new Person("Adam", "Smith");
     var eventAssert = new PropertyChangedEventAssert(person);
     var errorsChangedAssert = new ErrorsChangedEventAssert(person);
     var changeAssert = new ChangeAssert(person);
     person.FirstName = "Bob";
     Assert.AreEqual("Bob", person.FirstName, "FirstName setter failed");
     Assert.AreEqual("Bob Smith", person.FullName, "FullName not updated with FirstName changed");
     Assert.IsTrue(person.IsChanged, "IsChanged flag was not set when FirstName changed");
     eventAssert.Expect("IsChanged");
     eventAssert.Expect("FirstName");
     eventAssert.Expect("FullName");
     errorsChangedAssert.ExpectNothing("Expected no ErrorsChanged events");
     changeAssert.AssertOnlyChangesAre("FirstName", "FullName", "IsChanged");
     }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>