Jan*_*nek 5 unit-testing web-services mocking
我有一个类(让我们称之为A):
我开始创建一个单元测试:
虽然该Web服务有很多方法.
您应该在Web服务周围创建一个包装器接口,并使您的测试类依赖于该接口,而不是直接在Web服务上; 然后你可以模拟界面.只有让该接口公开您感兴趣的Web服务的方法.这被称为立面图案,在此详述.
如果没有关于您正在测试的内容的线索,请针对以下内容:
public interface IWebserviceWrapper
{
Whatever DoStuff(int something);
}
public class WebserviceWrapper : IWebserviceWrapper
{
private WebService _theActualWebservice;
public WebserviceWrapper(Webservice theService)
{
_theActualWebService = theService;
}
public Whatever DoStuff(int something)
{
return _theActualWebservice.DoSomething(something);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你的测试看起来像这样(在这种情况下,使用MOQ)
public void Test_doing_something()
{
Mock<IWebserviceWrapper> _serviceWrapperMock = new Mock<IWebserviceWrapper>();
_serviceWrapperMock.SetUp(m => m.DoStuff(12345)).Returns(new Whatever());
var classUnderTest = new ClassUnderTest(_serviceWrapperMock.Object);
var result = classUnderTest.Dothings(12345);
Assert.Whatever....
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4897 次 |
最近记录: |