ank*_*kur 2 c# moq xunit .net-core
我正在编写一个单元测试,其中我正在测试连接到外部服务的服务。
服务代码:
var request = new APIRequest
{
Query = query
};
var response = await _httpService.SendRequestAsync(_configuration.ApiUrl, HttpMethod.Post, request, _configuration.Username, _configuration.Password);
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadAsAsync<Result>();
return result;
}
Run Code Online (Sandbox Code Playgroud)
我为上述服务方法编写的单元测试。
public async void GetPerformance_OKResults()
{
//ARRANGE
var resultToReturn = MockedEntitiesRepository.mockNetworkResult;
HttpResponseMessage mockResponse = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
mockResponse.Content = new ObjectContent(Type.GetType(resultToReturn), resultToReturn, MediaTypeFormatter.)
mockHttpService.Setup(s => s.SendRequestAsync(applicationConfiguration.Object.Value.ApiUrl, HttpMethod.Post, It.IsAny<object>(), applicationConfiguration.Object.Value.Username, applicationConfiguration.Object.Value.Password)).Returns(Task.FromResult(mockResponse));
service = new Service(applicationConfiguration.Object, mockHttpService.Object, mockLogger.Object, mockCacheService.Object);
//ACT
var result = await Service.GetPerformance(It.IsAny<long>(), It.IsAny<DateTimeOffset>(), It.IsAny<DateTimeOffset>(), It.IsAny<string>());
// ASSERT
Assert.Collection(result, item => Assert.Equal(something, something));
}
Run Code Online (Sandbox Code Playgroud)
我想使用单元测试中的mockResponse
对象设置对象 HTTPResponseMessage 内容resultToReturn
,以便当代码进行实际调用时,它能够设置该值,并且我可以对结果进行断言。
我该如何设置该值?
我该如何设置该值?
将属性设置Content
为StringContent
包含 JSON 序列化的a Result
,例如:
var result = new Result();
...
mockResponse.Content = new StringContent(JsonConvert.SerializeObject(result));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5944 次 |
最近记录: |