gpt4 book ai didi

c# - 如何使用 Moq 模拟 Web 服务调用?

转载 作者:太空狗 更新时间:2023-10-29 22:10:59 24 4
gpt4 key购买 nike

下面的 using 命中了一个我不想实际命中的外部资源。我想测试 someResult 和使用它的代码,但每次我运行单元测试时,这段代码仍然试图访问真正的 Web 服务。我如何使用最小起订量伪造对 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....
}

最佳答案

您需要将 Web 服务实现与消费者分离

public class ClassIWantToTest
{
public ClassIWantToTest(IServiceIWantToCall service) {}

public void SomeMethod()
{
var results = service.DoSomething();
//Rest of the logic here
}
}

现在您可以使用 Moq 模拟 IServiceIWantToCall 以测试 SomeMethod 的逻辑

关于c# - 如何使用 Moq 模拟 Web 服务调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12204291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com