Xamarin Forms - установка xUnit не работает должным образом - PullRequest
0 голосов
/ 31 марта 2020

В моей модели представления входа в систему я внедряю навигационный сервис. Этот сервис навигации используется в следующем коде для перехода к определенному экрану

    public async Task HandleLoginCommand()
    {
        var asdf = _navigationService.PushAsync(new MainPage(), false);

        await asdf;
    }

Интерфейс, который я высмеиваю

   public interface INavigationService
   {
       Task PushModalAsync(Page contentPageToOpen, bool animated);
       Task PushAsync(Page contentPageToOpen, bool animated);
   }

Я написал для этого модульный тест, и он выглядит так:

    [Fact]
    public async Task HandleLoginCommand_NavigatesToMainPage_WhenLoginSucceededAsync()
    {
        // Arrange
        navigationService.Setup(s => s.PushAsync(It.IsAny<Page>(), false)).Returns(Task.CompletedTask);

        // Act
        // _loginViewModel.LoginHandelerCommand.Execute(null);
        await _loginViewModel.HandleLoginCommand();

        // Assert
        navigationService.Verify(m => m.PushAsync(It.IsAny<Page>(), false), Times.Once);
    }

Это не работает, установка не переопределяет поведение метода pushasyn c. Когда я пытаюсь поймать его, он говорит: «Вы ДОЛЖНЫ вызвать Xamarin.Forms.Init (); перед его использованием». Итак, я думаю, что установка идет не так, но почему?

...