Я пытаюсь выполнить модульное тестирование приведенного ниже кода.
public async Task<AppErrorCountByDateListVm> GetAppErrorCountByDateAsync()
{
var accessToken = await _httpContextAccessor.HttpContext.GetTokenAsync("access_token");
if (accessToken != null)
{
_httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken);
}
...
Специально я хочу выполнить moq / setup: _httpContextAccessor.HttpContext.GetTokenAsyn c
Ниже приведен мой модульный тест :
private IErrorLogService _sut;
private Mock<HttpClient> _httpClient;
private Mock<IHttpContextAccessor> _httpContextAccessor;
private Mock<IJsonSerializerUtility> _jsonSerializerUtility;
[SetUp]
public void RunBeforeEachTest()
{
_httpClient = new Mock<HttpClient>();
_httpContextAccessor = new Mock<IHttpContextAccessor>();
_jsonSerializerUtility = new Mock<IJsonSerializerUtility>();
_sut = new ErrorLogService(_httpClient.Object, _httpContextAccessor.Object, _jsonSerializerUtility.Object);
}
[Test]
public async Task OnInitializedAsyncTest()
{
//Arrange
_httpContextAccessor.Setup(h => h.HttpContext.GetTokenAsync("access_token")).ReturnsAsync(It.IsAny<string>());
//Act
await _sut.GetAppErrorCountByDateAsync();
//Assert
}
Я получаю следующие сообщения об ошибках:
System.NotSupportedException : Unsupported expression: ... => ....GetTokenAsync("access_token")
Extension methods (here: AuthenticationHttpContextExtensions.GetTokenAsync) may not be used in setup / verification expressions.
Я предполагаю, что пропускаю несколько шагов.
Любая помощь будет оценена.