我的任务是将其他人的集成测试更改为单元测试。我们有与数据库通信的业务对象。所以我们的测试目前反映了这一点。问题是我有直接在方法中调用db的代码 - 我希望它能够命中模拟数据而不是db。你是怎样做的?
List<listOfStuff> listing = getDataFromDB(DBStuff); //this is what I want to
//not happen in my test.
我无法更改方法,并且我阅读了有关在界面中包装方法的内容,但我不确定该怎么做...
答案 0 :(得分:1)
您可以使用MS Fakes
假货让你改变什么
getDataFromDB(DBStuff);
是否,但编写使用依赖注入和getDataFromDB的代码更好通过接口访问。
这是一个非常简单的假例子。
ShimDateTime.NowGet = () => new DateTime(2012, 12, 21);
我们正在制作DateTime.Now返回21/12/2012 :)您可以对getDataFromDB调用执行相同的操作。
史蒂夫