我是一個新項目,我應該擴展,所以我決定使用TDD快速識別我不完全瞭解的系統的任何問題。如何對使用ServiceStack Funq的DBService進行單元測試IOC
有一個類叫做DBService
它「封裝」了所有的數據庫訪問。例如,有一種稱爲getAllCustomers
的方法,其返回Customers
的列表。這將是這個樣子(這僅僅是爲了更好地理解爲例):
public class DBService
{
public IDbConnectionFactory DBFactory {
get { return DI.Container.Resolve<IDbConnectionFactory>(); }
}
public List<Customer> GetAllCustomers()
{
try
{
using (var connection = DBFactory.OpenDbConnection())
{
var dbResult = connection.Select<Customer>();
// code ommitted
}
}
catch (Exception e)
{
// code ommitted
}
}
}
另一個問題是,在啓動(在ServiceStack AppHost.Configure
)如果不存在,所有的表創建的,對於一些表,如果他們存在一些列等添加(這可能是以後添加的變化)
當我現在例如必須擴展客戶和添加另一個字段,地址我想這樣做的TDD風格,但我不知道如何。
- 我不能注入任何
DBFactory
自吸氣是私人 - 據我所知,我不能使用的
OrmLiteConnectionFactory
的:memory:
連接字符串,因爲我使用ServiceStack 74年3月9日
那麼,什麼是我選擇這裏?
是的我同意,服務定位器反模式是我應該儘量避免的。我只是認爲現在沒有太多的重構,有一種更簡單的方法。 – zlZimon
這是[技術債務](https://www.google.com/search?q=technical+debt)。它總是要求貸款。 – Nkosi