O.O*_*O.O 6 c# unit-testing moq
在using下面打,我不想竟然打的外部资源.我想测试someResult和使用它的代码,但每次我运行我的单元测试时,这段代码仍然试图点击真正的Web服务.我如何使用moq伪造对Web服务的真实调用,但不使用模拟其他代码?
public IMyInterface.SomeMethod()
{
// hits a web service
using ( mySoapClient client = new mySoapClient() )
{
var someResult = client.DoSomething();
...
...
}
}
[TestMethod()]
public void SomeMethodTest()
{
IMyInterface target = new MyInterface();
target.SomeMethod();
// Assert....
}
Run Code Online (Sandbox Code Playgroud)
cor*_*erm 14
您需要将Web服务实现与使用者分离
public class ClassIWantToTest
{
public ClassIWantToTest(IServiceIWantToCall service) {}
public void SomeMethod()
{
var results = service.DoSomething();
//Rest of the logic here
}
}
Run Code Online (Sandbox Code Playgroud)
现在你可以使用Moq来模拟它IServiceIWantToCall以测试逻辑SomeMethod