文章出處
文章列表
一個優秀的單元測試 Mocking 類庫,需要具備如下幾個特性:
- 易用性:有非常明確的 API ,易于使用并易于記憶。
- 健壯性:行為結果始終一致,并保持準確。
- 幫助性:當程序出錯時,給出盡可能明確的原因提示。
如果我們所使用的類庫沒有滿足上述條件,編寫測試用例的過程將變得復雜和困難,使用類庫不僅沒有節省時間,反而可能使我們更加迷惑。在這種條件下,我們可能更愿意刪除測試用例,之前的工作也就浪費了。
在 .NET 世界中,下面是一些框架或類庫的比較:
目前主流的 Mocking 類庫都會支持以下主要功能:
- 無需學習 Record/Replay/Verify 模型,僅需 Mock 你需要的類型,進而驗證結果或行為。
- 無需學習諸如 mock/stub/fake/dynamic/spy 等概念。
- 低學習曲線,API 簡單明確,大部分時間不需要翻閱文檔。
- 強類型,可直接使用對象類型配置返回值或約束條件。
- 既可以 Mock 接口類型,也可以 Mock 類類型。
- 支持定義覆蓋,可以覆蓋 Fixture 中的預先配置。
- 當 Mock 類時,可為構造函數傳遞參數。
- 支持攔截和引發事件通知。
- 直觀的支持 out/ref 參數。
下面是一些 Mocking 類庫的鏈接:
- NSubstitute
- Moq
- Rhino Mocks
- Microsoft Fakes Commercial (included with Visual Studio 2012 Ultimate)
- NMock
- EasyMock.NET
- TypeMock Isolator Commercial / Paid
- JustMock Free version and Commercial / Paid version
- FakeItEasy
文章列表
全站熱搜