什麼是單元測試使用LINQ to SQL並返回小數的類的最好和最簡單的方法,是通過Mocking?如果是的話,我該怎麼做呢?嘲笑LINQ to SQL
回答
這裏是一個article about mocking the LINQ to SQL DataContext。這似乎是你在找什麼,因爲它規定:
所以[通常]它是不是真的能單位 測試你的LINQ to SLQ查詢,而不 連接到基礎數據源 - 不理想。 但是不要害怕,這裏 是這個問題的通用解決方案。
而且它與
的數據庫總結所以我們現在有一種方法來測試我們的LINQ 我們 CustomerController類內SQL查詢,而不 依靠約束的DataContext
此外(在上述工作後)NMock library可以幫助你編程模擬對象的情況,並可能用於編以更正式的方式反對這一點,或者與其他模擬(我還沒有嘗試過)整合。
你應該換行調用的LINQ to SQL方法在實現接口的類,這樣嘲諷是可能的。
無論如何,在.NET 4中,定義了一個ITable
接口,它將對使用mocks測試使用LINQ to SQL的場景(http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40)有很大的幫助。另一種選擇是嘲笑的DataContext本身,例如參見這裏:http://andrewtokeley.net/archive/2008/07/06/mocking-linq-to-sql-datacontext.aspx
我沒能拿出舒服嘲笑使用Linq to SQL進行單元測試的解決方案,所以我採用了不同的路線。
我創建了一個具有已知值的測試數據庫進行測試。然後,因爲你不想讓你的測試,改變你的數據的內容,我採用的NUnit的XtUnit擴展: http://weblogs.asp.net/rosherove/archive/2004/10/05/238201.aspx
這個擴展奇蹟般地恢復任何改變你的測試向該數據庫一旦測試完成。
我不會撒謊,這個解決方案是有點難看。但是,它也不需要你提出一個bizarro嘲諷的概念。一旦建立了測試數據,編寫測試非常簡單。所有測試需要確保您的類從ExtensibleFixture繼承,並用[DataRollBack]屬性標記您的測試,並且XtUnit將完成剩下的工作。
- 1. 嘲笑還是不嘲笑?
- 2. 嘲笑SQL輸出參數
- 3. 用犀牛嘲笑嘲笑系列
- 4. 嘲笑HttpPostedFileBase與犀牛嘲笑
- 5. 嘲笑IdempotentConsumer
- 6. 嘲笑Java類
- 7. Java嘲笑DriverManager
- 8. 嘲笑類,Java
- 9. 從嘲笑ApplicationUserManager.Users
- 10. 嘲笑異常
- 11. 嘲笑會員
- 12. 用笑話表示嘲笑?
- 13. 嘲諷TransactionTemplate的嘲笑
- 14. 犀牛嘲笑:嘲諷HttpRequestBase.Files
- 15. 嘲諷命令嘲笑
- 16. 嘲笑Couchbase
- 17. 嘲笑IDisposable類
- 18. 嘲笑HttpServerUtilityBase
- 19. PowerMock嘲笑MoreAsserts
- 20. 嘲笑UIImagePNGRepresentation
- 21. 嘲笑HttpListenerContext
- 22. 嘲笑Wcf ServiceContract
- 23. Android BluetoothAdapter嘲笑
- 24. 構建嘲笑
- 25. 嘲笑春豆
- 26. 當嘲笑localStorage.getItem
- 27. 嘲笑!和Scala
- 28. 嘲笑傻瓜?
- 29. 嘲笑RavenDb
- 30. 嘲笑DateTime
只有您擁有的模擬類型。 [標記尼德姆](http://www.markhneedham.com/blog/2009/12/13/tdd-only-mock-types-you-own/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+MarkNeedham+%28Mark+ Needham%29)有一個關於爲什麼的簡短博客條目。 – Oded 2009-12-15 09:58:13