作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在这里伪造 getCustomerName 服务调用并用假数据模拟它
我的类是“CustomerName”,它调用 SOAPService 调用,该调用返回 CustomerNumber 的 CustomerName。我想伪造 SOAPService 调用以返回一些假数据。
客户名称类:
using (WebService.WebServiceClient CustomerData = new WebService.WebServiceClient ())
{
WebServiceClient.TestResponse resp = CustomerData.getCustomerName(customerNumber);
resp.CustomerName;
}
var FakeWebService = A.Fake<WebServiceClient>();
var FakeCustomerName=A.Fake<CustomerName>();
A.CallTo(WebServiceClient.CustomerNumber).WithNonVoidReturnType().Returns(FakeResponse);
fakeCustomerName = FakeCustomerData.GetCustomerName(CustomerNumber);
最佳答案
与其直接引用 web 服务并因此尝试模拟 web 服务本身,不如创建一个接口(interface)来保存 web 服务提供的功能。
public interface ICustomerData
{
CustomerName GetCustomerName(CustomerNumber number);
}
public class CustomerData : ICustomerData
{
CustomerName GetCustomerName(CustomerNumber number)
{
return CustomerData.GetCustomerName(number);
}
public CustomerData()
{
CustomerData = new WebService.WebServiceClient ();
}
private WebService.WebServiceClient CustomerData;
}
public class DelegatedCustomerData : ICustomerData
{
public Func<CustomerNumber,CustomerName> GetCustomerName {get;set;}
CustomerName ICustomerData.GetCustomerName(CustomerNumber number) => GetCustomerName(number);
}
关于c# - 如何在 C# 中模拟 SOAP 服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44405441/
我是一名优秀的程序员,十分优秀!