Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

Utilização do MessagingCenter Xamarim.Forms

Boa noite uma duvida referente a utilização do "MessagingCenter". Ele é o mais indica para esse tipo de abordagem. Pergunto pelo seguinte, como fazer testes nesse cenário já que ele não esta dentro da viewModel. Poderia usar command ao invés dele. Uma questão mais de encapsulamento. Se no caso for possível uma abordagem mais elegante, se tiver um exemplos para entender um pouco mais. Desde já obrigado pela atenção.

1 resposta
solução!

Olá, Luis Miguel

De acordo com esse documento do Xamarin, você pode assinar mensagens do MessagingCenter na sua classe de teste de unidade, como por exemplo:

https://developer.xamarin.com/guides/xamarin-forms/enterprise-application-patterns/unit-testing/#Testing_Message-based_Communication

[Fact]  
public void AddCatalogItemCommandSendsAddProductMessageTest()  
{  
    bool messageReceived = false;  
    var catalogService = new CatalogMockService();  
    var catalogViewModel = new CatalogViewModel(catalogService);  

    Xamarin.Forms.MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(  
        this, MessageKeys.AddProduct, (sender, arg) =>  
    {  
        messageReceived = true;  
    });  
    catalogViewModel.AddCatalogItemCommand.Execute(null);  

    Assert.True(messageReceived);  
}

Com isso, podemos criar asserts para verificar informações esperadas nas mensagens emitidas pelas View Models.