【发布时间】:2013-06-10 08:32:09
【问题描述】:
我想对以下代码进行单元测试。现在我正在将 NUnit 与 Rhino Mock 一起使用。
注意:所有的 NUnit 测试用例都不应该做任何数据库操作
interface IdbOperation
{
int insert();
}
public class databaseactivity:IdbOperation
{
public databaseactivity()
{
verifyDBConnection();
}
void verifyDBConnection()
{
DbManager dbManager=new DbManager();
if(dbManager.state()!=True)
{
Throw new DatabaseException();
}
}
public int insert(bo obj)
{
Serviceclient serviceClient=new Serviceclient();
serviceClient.insert(obj);
}
}
在上面的代码中,我想为插入方法编写一个单元测试用例。我尝试了很多方法但无法模拟。所以请任何人帮助我模拟插入方法。尽快
您也可以向我推荐任何其他模拟框架。
【问题讨论】:
-
在没有依赖注入的情况下,使用 mock 进行单元测试是行不通的。这就是生活。
-
这一千倍。您需要重构代码,以免这些具体类在方法中被实例化。无法足够快地 +1 @sq33G 评论。
-
谢谢我同意您的担忧,我与客户讨论过,但他们还没有准备好更改现有代码..这就是为什么我来这里寻找任何替代路线.. microsoft moles 会帮助吗?
-
你想用那个方法测试什么。调用 ServiceClient 中的插入并接收 bo obj 作为参数?
标签: c# unit-testing nunit rhino-mocks