Uma das funcionalidades apresentadas na versão Beta1 do Silverlight 2 é um framework de automação de testes que possibilita a execução de testes de unidade tanto
a nível da API como em interfaces para o usuário.
Junto ao lançamento deste framework de automação, foram também disponibilizados aproximadamente 2.000 testes de unidade realizados que permitem a cobertura automatizada do código fonte para o Silverlight, que também foi disponibilizado sob uma licença de permissão (você pode ter o código fonte, modificá-lo, executar os testes unitários e verificar o comportamento para então disponibilizar os controles novamente como desejar).
Como Realizar Testes Unitários no Silverlight
Jeff Wilcox (que desenvolveu o framework de testes unitários e a automação destes testes para Silverlight) tem um ótimo post em seu blog onde é apresentado como adicionar um projeto de Teste Unitário para Silverlight a uma solução. Você pode fazer o download da aplicação de chat utilizada para testes neste post do Expression Blend feito no último mês. Você pode ainda assistir a este vídeo post que Jeff criou onde é realizado um passo-a-passo através do framework de testes unitários e dos casos de testes que foram disponibilizados.
Assim como Jeff apresenta em seu blog, agora você pode adicionar um "Silverlight Test Project" para a sua solução no Visual Studio que encapsula testes unitáros para uma aplicação em que você esteja trabalhando:


Você pode então adicionar classes para testes unitários ao projeto e assim testar APIs ou simular ações de interfaces do usuário com controles Silverlight (simular clicks em botões etc).

Você pode então executar o projeto teste e realizar os testes inclusos nele para verificar os status dos mesmos.
O framework de testes criado por Jeff oferece ferramentas e relatórios via browser (o que significa que você pode acessá-los de qualquer combinação de navegador / sistema operacional com suporte ao Silverlight):

O framework suporta a re-definição simplificada de controles depois de cada teste (evitando a necessidade de uma nova instância do browser para cada caso de teste - o que torna a ferramenta realmente rápida).
Você pode rapidamente percorrer centenas de milhares de testes automatizados em segundos:

A sinalização verde representa que os testes obtiveram sucesso. Sinais vermelhos indicam que o caso de teste falhou e são registradas as falhas e/ou exceções em tempo de execução que ocorreram.
Resumo
Se você já lutou tentando alcançar uma estratégia para a realização de testes unitários automatizados ou TDD em aplicações AJAX, acredito que você irá descobrir que o Silverlight oferece algumas boas opções de teste. Utilizando o Visual Studio você pode ainda separar os testes em um projeto da sua solução, e não precisará agregar os testes com a aplicação Silverlight no momento da execução da aplicação.
Além de oferecer suporte ao framework de testes apresentado, vamos também oferecer suporte para automação de APIs de interfaces do usuário com a versão final do Silverlight 2. Isto irá habilitar cenários de acessibilidade (permitindo leitores de telas a trabalhar com o Silverlight e habilitar compatilidade entre as regras do projeto Section 508 e aplicações Silverlight). A automação destas APIs de interfaces com o usuário irá possibilitar também cenários de testes onde você poderá criar automação para estas interfaces incluindo interação real de mouse e teclado além de habilitar testes de experiência. Esta combinação irá possibilitar a criação de soluções RIA mais consistentes e com melhor manutenibilidade.
Espero ter ajudado,
Scott
(Tradução por João Almeida)
P.S. Para mais tutoriais e links para Silverlight 2, confira minha nova página "Dicas, Tutoriais e Links de Silverlight".