Сообщение об ошибке верное.RestClient.BuildUri
является не виртуальным членом.
/// <summary>
/// Assembles URL to call based on parameters, method and resource
/// </summary>
/// <param name="request">RestRequest to execute</param>
/// <returns>Assembled System.Uri</returns>
public Uri BuildUri(IRestRequest request)
{
DoBuildUriValidations(request);
var applied = GetUrlSegmentParamsValues(request);
string mergedUri = MergeBaseUrlAndResource(applied.Uri, applied.Resource);
string finalUri = ApplyQueryStringParamsValuesToUri(mergedUri, request);
return new Uri(finalUri);
}
Moq не может смоделировать не виртуальные / абстрактные элементы.
Ваши классы не должны быть тесно связаныдля реализации / конкреций, но абстракций.
В этом случае вы должны использовать IRestClient
, из чего RestClient
получено.
Это позволит тесту бытьнастроен правильно
//...
var restClientMock = new Mock<IRestClient>();
restClientMock
.Setup(client => client.BuildUri(It.IsAny<IRestRequest>()))
.Returns(new Uri("http://localhost:8080/"))
.Verifiable();
//...