Как проверить, что макет не возвращает указанный c тип возвращаемого значения - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь вызвать Api. Если вызов не удался, я повторяю попытку через настроенное время ожидания. Когда я пишу модульный тест для сценария, в котором повторные вызовы API завершаются неудачно, и происходит тайм-аут. Я не могу определить, что утверждать здесь. Я думаю, что очевидно, чтобы убедиться, что mockedBaseApiClient никогда не возвращал успешный ответ ни на один из его вызовов при выполнении. Но я не могу понять, как проверить тип возвращаемого значения для смоделированного объекта.

public async Task UpdateDocumentPath(UpdateDocument doc)
{
   var path = $"v1/documents/{doc.accountId}/{doc.documentId}/paths";
   try
   {
     var response = await _baseApiClient.PutAsync(DocumentsApiKey, path, doc);
      if (response.IsSuccessStatusCode)
      {           
                var updatedDocument = await response.Deserialize<UpdateDocument>();
                var updatedPath = updatedDocument.documentPath;
      }
      else
      {
           await TryToReConnect(doc);
      }
    }
    catch (Exception ex)
    {
      _exceptionPublisher.PublishException(ex);
       await TryToReConnect(doc);
    }
}

Мой юнит-тест:

[Fact]
public async Task DocumentPatchAdapter_PatchDocument_RetriesWhenUnSuccessfullStatusCode_ButTimeoutExhausts_Tests()
{
 MockConfiguration();
 _mockedConfigurationSection.SetupGet(c => c.Value).Returns("20000");
  HttpResponseMessage notFoundResponse = new HttpResponseMessage
  {
     StatusCode = HttpStatusCode.NotFound
   };

    _mockedBaseApiClient
            .SetupSequence(c => c.PutAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<Object>()))
            .ReturnsAsync(notFoundResponse)
            .ReturnsAsync(notFoundResponse)
            .ReturnsAsync(notFoundResponse);

     UpdateDocument documentPathToBeUpdated = new UpdateDocument
     {
       accountId = 34512274,
       documentPath = "\\\\sharoi.vliproj.com\\DevL\\DocumentMaker\\Print\\InsuranceScoreRenew_19196100600.pdf",
       documentId = 3656261
     };
     await _documentPatchAdapter.UpdateDocumentPath(documentPathToBeUpdated);  
    //_mockedBaseApiClient.Verify(c=>c.PutAsync(.....)).NeverReturns(SuccessCode); I want something like this here          
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...