如何将集成测试转换为单元测试

时间:2015-03-31 20:10:02

标签: c# unit-testing mocking

我的任务是将其他人的集成测试更改为单元测试。我们有与数据库通信的业务对象。所以我们的测试目前反映了这一点。问题是我有直接在方法中调用db的代码 - 我希望它能够命中模拟数据而不是db。你是怎样做的?

List<listOfStuff> listing = getDataFromDB(DBStuff); //this is what I want to     
//not happen in my test.

我无法更改方法,并且我阅读了有关在界面中包装方法的内容,但我不确定该怎么做...

1 个答案:

答案 0 :(得分:1)

您可以使用MS Fakes

假货让你改变什么

getDataFromDB(DBStuff); 

是否,但编写使用依赖注入和getDataFromDB的代码更好通过接口访问。

这是一个非常简单的假例子。

  ShimDateTime.NowGet = () => new DateTime(2012, 12, 21);

我们正在制作DateTime.Now返回21/12/2012 :)您可以对getDataFromDB调用执行相同的操作。

史蒂夫