【发布时间】:2017-01-31 12:27:52
【问题描述】:
我是一个需要扩展的项目的新手,所以我决定使用 TDD 来快速识别我不完全理解的系统的任何问题。
有一个名为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因为 getter 是私有的 - Afaik 我不能将
:memory:连接字符串用于OrmLiteConnectionFactory,因为我使用的是 ServiceStack 3.9.74
那么我在这里有什么选择?
【问题讨论】:
标签: c# unit-testing mocking ormlite-servicestack servicestack-ioc