Solucionado (ver solução)
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.