模拟不适用于调用 HTTPwrapper 类方法的内部函数

问题描述 投票:0回答:1

在实际调用外部函数之前,我正在模拟内部函数之一。 我正在模拟一个 httpwrpapper 类方法。 问题是我的模拟方法没有返回响应。 下面是代码的全部代码。

Httpwrapper 类和方法

我在下面尝试过,但是在实际调用方法时它不会产生/触发我嘲笑的响应

c# mocking nunit moq dotnet-httpclient
1个回答
0
投票

TL;DR:你不应该嘲笑你要测试的代码。


mockexecutor.object.SomeMethod(someparametrs);

这一行建议我尝试在模拟对象上调用

SomeMethod

每当我们谈论模拟时,我们应该只模拟被测系统的依赖关系(或简称)。

所以,在你的情况下你应该嘲笑

IHTTPClientWrapper
,而不是
Executor

//Arrange
var mockHttpClient =new Mock<IHTTPClientWrapper>();
mockHttpClient
   .Setup(client => ...)
   .ReturnsAsync(...);


var sut = new Executor(mockHttpClient.Object);

//Act
sut.SomeMethod();

//Assert
...
© www.soinside.com 2019 - 2024. All rights reserved.