2012-06-14 61 views
2

如何模擬LLBLGen?我看到有一個ILinqMetaData接口,但它沒有提供任何有用的方法來模擬。我假設你想編程到ILinqMetaData接口以及生成的實體接口,以保持對象鬆散耦合到數據。有沒有人有任何簡單的測試/模擬的例子?如何用LLBLGen模擬

回答

0

我認爲它不侷限於LLBLGEN,也許這可以幫助:

What's the best strategy for unit-testing database-driven applications?

就個人而言,我一般不測試我的數據庫訪問或存儲庫,只是在實體上操作的邏輯,或在整個堆棧(包括數據庫)上運行的集成測試。

更新:這有幫助嗎?它可以讓你無需做任何讀取/持久性邏輯的嘲諷IOrderRepository測試你的邏輯:

public class MyBusinessLogic 
{ 
    IOrderRepository orders; 

    public MyBusinessLogic(IOrderRepository orders) 
    { 
     this.orders = orders; 
    } 

    public DoSomethingTestable(OrderEntity order) 
    { 
     order.Total = 100; 
     orders.Save(order); 
    } 
} 
+0

我們使用的是自維修模式,因此實體被捆綁到數據庫中。我試圖找出如何解決這個問題。 –

+0

如果我想要API靈活性,嗯,自我服務不是我的第一選擇...自助服務就是抽象出數據訪問,你必須能夠假設它是有效的,所以你不應該擔心關於在實體上運行的邏輯,而不管數據是否被持久/取出? –

+0

是的,但是如果我想更新一個「Order」對象並堅持它,是否編寫一個函數來只更新我想要的特定信息或可以使用髒位的東西?理想情況下,我可以在業務邏輯中將實體對象用作我的數據持有者。 –