Breno Ferreira

Opniões e códigos de um desenvolvedor de software .NET.

Unit Test Framework para Windows Phone 7 Mango

with 3 comments

Olá pessoal,

Recentemente comecei a desenvolver uma aplicação para Windows Phone 7 e, como uma boa pessoa, comecei a escrever testes. Mas, quando fui rodar os teste, descobri que o MSTest, framework de testes da Microsoft que vem nativamente no Visual Studio, não suporta código feito para o Window Phone 7.

Então comecei a caçar algum framework na internet, e achei esse do Jeff Wilcox. Ele foi feito, originalmente para Silverlight, mas também possui suporte para Windows Phone 7, inclusive para o SDK novo do Mango.

Para utilizá-lo é bem simples, basta fazer o download dos bits aqui. Depois de baixado o framework, crie no Visual Studio uma “Windows Phone Application” e referencie as duas dlls abaixo:

Silverlight Unit Test Framework DLLs

Depois disso, no arquivo MainPage.xaml.cs do projeto de teste, adicione o seguinte trecho de código:

public MainPage()
{
	InitializeComponent();

	this.Loaded += (sender, e) => SetupTestUI();
}

private void SetupTestUI()
{
	var testPage = UnitTestSystem.CreateTestPage() as IMobileTestPage;
	BackKeyPress += (x, xe) => xe.Cancel = testPage.NavigateBack();
	(Application.Current.RootVisual as PhoneApplicationFrame).Content = testPage;
}

Agora é só começar a escrever seues testes!

[TestClass]
public class AdditionTests
{
	[TestMethod]
	public void TwoPlusTwoEqualsFour()
	{
		var result = 2 + 2;
		var expected = 4;
		Assert.AreEqual(expected, result);
	}

	[TestMethod]
	public void FivePlusFiveEqualsTen() //example of a failing test
	{
		var result = 5 + 4;
		var expected = 10;

		Assert.AreEqual(expected, result);
	}
}

Para rodar os testes, recomendo executar o projeto sem o debugger attachado (Ctrl+F5), pois toda vez que um Assert falhar, ele irá lançar uma “AssertFailedException”, fazendo com que o debugger do Visual Studio pare a execução e exiba os detalhes da exception lançada, conforme a imagem abaixo.

Após executar os testes, ele irá mostrar os resultados, dizendo quais teste passaram, e quais falharam. Basta clicar nos links que ele irá mostrar detalhes maiores sobre cada item, até chegar em uma visão detalhada sobre um teste em particular.

Como vimos, é bem simples escrever e executar testes para aplicações Silverlight no Windows Phone 7. Está longe do ideal, pois ao rodar os testes quando o emulador do WP7 está fechado, demora um pouco para vermos o resultado. Mas com o emulador já aberto, conseguimos visualizar os resultados bem rapidamente.

Abraços

Breno

About these ads

Written by Breno Ferreira

06/12/2011 at 09:19

Posted in WP7

Tagged with , ,

3 Responses

Subscribe to comments with RSS.

  1. Não entendi, porque simplesmente não usou o NUnit?

    Rodrigo Vidal

    14/12/2011 at 18:15

    • Testei o NUnit, mas dava muitas incompatibilidades com os assemblies do WP7. Outros implementacoes davam pau com o runtime do Mango (que eh um meio termo de SL3 e SL4) e dava crash na hora de rodar os testes. Esse foi o unico que funcionou tranquilamente, inclusive no Mango.

      Breno Ferreira

      14/12/2011 at 22:51

  2. Breno to tendo dificuldade pra configurar meu ambiente de teste ó, ja tentei várias coisas e não sei porque nao funciona, você poderia me dar um help ? Meu email é lulobaum@gmail.com. Agradeço a atenção.

    Luana Lobão

    14/02/2012 at 16:18


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.