我是一个新项目,我应该扩展,所以我决定使用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