У меня есть метод, который мне нужен для Unittest, и я застрял с насмешливой его частью.
private async void LoginCommandAsync()
{
.....
CancellationToken ct;
var result = await ClientAuthorizationService.CurrentClient.InvokeApiAsync(Constants.ApiConstants.AzureAuthMeData,
null, HttpMethod.Get, null, ct);
....
}
Я пытался издеваться над Microsoft.WindowsAzure.MobileServices.MobileServiceClient, используя Moq. К сожалению, я всегда получаю исключение System.InvalidCastException в последней строке кода
var currentClient = new Mock<IMobileServiceClient>(MockBehavior.Loose);
currentClient.Setup(x => x.InvokeApiAsync(Constants.ApiConstants.AzureAuthMeData,
null, HttpMethod.Get, null, ct)).Returns(Task.FromResult(token));
var disposableCurrentClient = currentClient.As<IDisposable>();
ClientAuthorizationService.CurrentClient = (MobileServiceClient)disposableCurrentClient.Object;
MobileServiceClient наследует от IMobileServiceClient, IDisposable, но независимо от того, как я пытаюсь использовать / назначить макет объекта ... он не работает.
public class ClientAuthorizationService : IClientAuthorizationService
{
public MobileServiceClient CurrentClient { get; set; }
public ClientAuthorizationService()
{
CurrentClient = new MobileServiceClient(Constants.ApiConstants.ApplicationUrl);
}
}