0
我在NUnit 2.5+的基礎上構建了一個受RSpec啓發的庫,以提高我的測試可讀性。源代碼位於http://github.com/educobuci/SpecUnit。如何測試NUnit助手?
這個庫讓我寫這樣的測試:
[Test]
public void It_should_returns_0_for_all_gutter_game()
{
var game = new Bowling();
for (int i = 0; i < 10; i++)
game.Hit(0);
game.Score.Should(Be.Equal(0));
}
的「應該」的方法是接收一些NUnit的說法一樣,基本上是一個行動的所有對象的擴展方法:
public static class Be
{
public static Action<T> Equal(T to)
{
return (target) => NUnit.Framework.Assert.AreEqual(target, to);
}
}
圖書館工作得很好,但我沒有對圖書館本身進行測試......基本上是因爲我不知道如何測試它!
那麼,我該如何測試它呢?我的意思是,如何確保「object.Should(Be.Equal(object))」真正檢查平等嗎?
個人而言,我剛纔堅持'Assert.AreEqual(0,game.Score)',它是無限更容易比理解'game.Score.Should(Be.Equal(0))'。它不僅不需要額外的單元測試,而且也不需要另外一組文檔就可以全部解決。 – Dave 2010-09-12 00:39:25
@Dave我的想法是隻使用一個框架(我的:)。除了寫作更「有機」之外,它還提供了設計時的類型檢查(感謝泛型)。 – 2010-09-12 02:31:07