【发布时间】:2013-12-01 14:41:13
【问题描述】:
我有以下代码:
public class DB
{
public virtual int GetNumbers()
{
return 42;
}
}
public interface ITestable
{
int TestMethod();
}
public class Testable : ITestable
{
public int TestMethod()
{
DB db = new DB();
return db.GetNumbers() + 20;
}
}
现在我想使用 MOQ 创建一个模拟数据库,这样每次创建和初始化数据库时(就像在 Testable.TestMethod 中一样),它都会使用模拟的数据库实例。
例如,也许我可以设置 DB Mock,这样对于所有 DB 的实例,当调用 GetNumbers 方法时,它将返回 12 而不是 42。这样 Testable.TestMethod 将返回 32,而不是 62。
我想知道起订量是否可以处理这种情况?其实我知道 TypeMock Isolator 和 Microsoft Fakes Framework 可以做到这一点。而且我也不喜欢采用“测试驱动开发”方法(这意味着我需要调整我的设计)。
【问题讨论】:
-
你想要依赖注入。
标签: c# unit-testing tdd moq