我剛開始使用D2編程語言。我喜歡單元測試是語言本身的一部分,但我似乎無法找到任何模擬對象庫。那裏有標準的嗎?D有哪些模擬對象庫?
12
A
回答
6
我知道的唯一的模擬對象庫是DMocks,但它被放棄了。它可能無法用最近的編譯器版本編譯。 也許BlackHole,WhiteHole和自動執行從std.typecons將在一定程度上幫助你。
1
雖然它不是幻想作爲一個真正的模擬對象庫可能是,我現在做的依賴注入了良好的效果如下方式:
class Car(Engine = AtomicEngine, Wheel = CartWheel)
{
this()
{
engine = new Engine;
...
}
Engine engine;
Wheel[4] wheels;
}
如果沒有MockEngine提供租車默認使用首選AtomicEngine這很整潔,因爲那是我大部分時間想要的。還要注意的是,注入是在編譯時完成的,對於模擬功能沒有運行時間損失,即不需要繼承。
unittest
{
auto car = new Car!(MockBrokenEngine, MockWheel);
car.start();
assert(...);
}
讓我們來測試賽車帶着一顆破碎的引擎這樣。
3
- DMocks-revived對於d編程語言中的模擬對象的框架,也被寫入D.
- dunit (nomad)高級單元測試工具包。
1
我是DUnit的作者,其中包含一個模擬解決方案。它的使用是這樣的:
class Foo
{
// Mixin mocking behaviour.
mixin Mockable!(Foo);
}
auto foo = Foo.getMock();
foo
現在是一個模擬。
更爲明顯的例證是在這裏: https://github.com/nomad-software/dunit/blob/master/source/example.d
相關問題
- 1. 了哪些對象
- 2. 模擬對象
- 3. 模擬對象
- 4. 事先知道clusterExport有哪些對象
- 5. jjs中有哪些對象可用?
- 6. 用犀牛模擬模擬數據庫對象
- 7. 如何通過模擬庫模擬套接字對象
- 8. 「模擬」對象有沒有屬性「__getitem__」
- 9. junit模擬對象
- 10. 模擬對象C++
- 11. 模擬WP_REST_Request對象
- 12. 模擬C++對象
- 13. 寫入MongoDB時有哪些Java模型對象選項可用?
- 14. 從部分模擬對象返回模擬對象不工作
- 15. 如何在模擬對象內創建一個模擬對象?
- 16. 如何模擬一個模擬對象返回的對象?
- 17. Cocoa CMD + Option + D模擬
- 18. 模擬知識庫返回具有空屬性的對象
- 19. PHP嘲笑沒有從模擬函數返回模擬對象
- 20. 具有@Value註釋的模擬對象
- 21. 創建沒有setter的模擬對象
- 22. ksoap2庫有哪些限制?
- 23. 模擬大量與其他對象相關的對象(「有」)
- 24. 模擬對象的標準
- 25. 模擬NHibernate的IQueryOverOrderBuilder對象
- 26. 用途()模擬對象
- 27. 模擬CGLIB增強對象
- 28. 使用模擬對象
- 29. 模擬對象的創建
- 30. 模擬對象和接口
這一切都很好,但你如何創建的嘲笑?這是OP的要求。 – 2014-08-14 19:28:41