Inquiridor
Problemas com a propriedade "SelectedIndex" em uma combobox

Pergunta
-
Pessoal,
Estou com um pequeno problema ao tentar utilizar a propriedade "SelectedIndex" de uma combobox. Primeiramente, estou desenvolvendo um teste automatizado de uma aplicação Web aqui da minha empresa.
O que ocorre é o seguinte. Tenho dois combo box no qual preciso percorrê-lo selecionando valores e validando um campo posterior nesta página.
Para tal, escrevi o seguinte código:
...
int count_ramo = (int)uIRamoComboBox.GetProperty("ItemCount");
for (int i = 1; i < count_ramo; i++)
{
uIRamoComboBox.SelectedIndex = i;
int count_sub_ramo = (int)uIRamoComboBox.GetProperty("ItemCount");
for (int j = 1; j < count_sub_ramo; j++ )
{
// Select 'Sub-Ramo*' combo box
uIRamoComboBox.SelectedIndex = j;...
Quando o teste chega no trecho de seleção do valor no combo box (uIRamoComboBox.SelectedIndex = i;) simplesmente ocorre a falha abaixo:
Microsoft.VisualStudio.TestTools.UITest.Extension.PlaybackFailureException was unhandled by user code
Message=Cannot perform 'SetProperty of SelectedIndex with value "1"' on the control. Additional Details:
TechnologyName: 'Web'
ControlType: 'ComboBox'
Id: 'cmbRamoAtividadeRamo'
Name: 'cmbRamoAtividadeRamo'
TagName: 'SELECT'
Failed to find any control that matched the value ALIMENTACAO for the search property InnerText.
Source=Microsoft.VisualStudio.TestTools.UITesting
InnerException: System.Runtime.InteropServices.COMExceptionAlguém poderia me ajudar a resolver este erro?
Desde já agradeço.
Rodrigo Dalmas
Todas as Respostas
-
Fala Rodrigo,
Eu nunca fiz este teste, mas tenho algumas sugestões para você pensar.
1 - Qual a necessidade deste teste?
2 - Não seria melhor você testar os métodos de validação individualmente? Assim você aplicaria melhor a idéia de teste unitário. (alias. esta ferramenta que você esta usando, foi feita pra isso.)
3 - Se o seu objetivo é testar se o combo esta carregado, você poderia testar o método que carrega o combo.. em vez de testar o combo!
OK?
Francisco Gonçalves
Blog: franciscogoncalves.wordpress.com- Sugerido como Resposta Francisco Gonçalves quarta-feira, 16 de novembro de 2011 21:47
- Não Sugerido como Resposta Rodrigo Dalmas quinta-feira, 17 de novembro de 2011 10:09
-
Olá Francisco,
Eu trabalho com testes automatizados, portanto a questão do teste unitário não é o meu foco. Na realidade o meu foco é o seguinte. Tenho dois combo box e cada opção selecionada neles habilita um check box, numa outra tela. Preciso garantir que a regra foi corretamente aplicada e o check box irá aparecer para quem tem que aparecer e não vai aparecer para quem não tem que aparecer...
Obrigado pelas sugestões!
-
Entendi..
Então eu tenho outra sugestão..
- Para fazer testes automatizados de interface.. eu utilizo o Microsoft Test Manager....
Não sei se você conhece... mas ele permite você criar o tipo de teste que você precisa (lógica de interface) sem programar nenhuma linha... e ainda por cima você poderá automatizar isso.
De uma olhada..
PS: Apesar de estar escrito teste manual neste artigo.. a segunda etapa é automatizar o teste
Francisco Gonçalves
Blog: franciscogoncalves.wordpress.com -
Francisco,
A idéia do post é realmente resolver o problema que está ocorrendo com o Visual Studio. Tenho outros problemas com a ferramenta QTP, também de testes automatizados e por enquanto não estou considerando a opção de expandir para uma terceira ferramenta, senão fica muito complicado de se trabalhar, até porque sou apenas eu quem faço os testes automatizados.
Agradeço se pudermos focar na solução do problema em si, sem alternativas extra-ferramenta.
-
-
Rodrigo,
Como eu consigo reproduzir esse erro?
Você está usando Web Application ou Windows Forms? O teste está sendo feito com Coded UI? Existe algum tipo de script server / client no onchange da primeira combo?
[]s
André Dias, ALM Ranger & ALM MVP - @AndreDiasBR - http://blog.lambda3.com.br/L3/andredias - Treinamentos em TFS e ALM na Lambda3 -> http://www.lambda3.com.br/treinamentos/alm