Em algumas situações durante a reprodução, é possível que o Teste Funcional não consiga diferenciar entre dois objetos semelhantes no software em teste. Por exemplo, em aplicativos HTML quando mais de uma instância de navegador está ativa, reconhecer entre um e outro navegador nas ações da barra de ferramentas seria impossível se tivessem sido gravados como nestes exemplos:
BrowserToolbar_Back().click()
BrowserToolbar_Forward().click()
Em casos desse tipo, o Teste Funcional evita o reconhecimento ambíguo localizando o botão da barra de ferramentas no navegador que está identificado por seu documento carregado no momento (referido como uma âncora para o objeto de destino. Por exemplo:
BrowserToolbar_Back(Browser_htmlBrowser(Document_MyHomePage(),
DEFAULT), DEFAULT).click();
O botão voltar da barra de ferramentas está ancorado pelo navegador, que está ancorado pelo documento "My HomePage". Esse exemplo não funcionará, naturalmente, se cada instância do navegador tiver o mesmo documento carregado. Observe que os métodos de script auxiliares que utilizam uma âncora como argumento também requerem outro argumento que especifique o estado do componente (o argumento DEFAULT no exemplo anterior). O estado padrão para objetos HTML é LOADED. Para componentes HTML, também são possíveis LOADING e UNINITIATED. O estado padrão para objetos Java é SHOWING e ENABLED. Outros sinalizadores de estado suportados para objetos Java são NOT_SHOWING e DISABLED.
Além disso, você pode identificar a instância do navegador utilizando uma referência TestObject
para ela, chamando o método de localização no navegador, como a seguir (lembre-se de
cancelar o registro de TestObject quando terminar):
TestObject
browserOne = Browser_htmlBrowser(Document_MyHomePage(),
DEFAULT).find();
Os comandos da barra de ferramentas do navegador no script de teste seriam semelhantes a este exemplo:
BrowserToolbar_Back(myBrowser,
DEFAULT).click();
Outra situação em que o reconhecimento ambíguo pode ser problema é quando
um teste tem mais de um aplicativo em execução ao mesmo tempo. Durante
a reprodução, comandos como b5().click()
são ambíguos. Como
o comando startApp
retorna ProcessTestObject
,
essa referência pode ser utilizada para especificar a qual aplicativo um determinado comando
se aplica. Por exemplo:
ProcessTestObject
p1 = startApp("SwingTest");
ProcessTestObject p2 = startApp("TryIt");
...
//b5().click(); ambiguous on playback; which application?
b5(p1, DEFAULT).click();
Na última linha do exemplo, o ProcessTestObject
funciona como âncora para localizar o aplicativo desejado. Observe que chamar
o método cancelar registro para um ProcessTestObject
não é necessário.
Termos de uso | Feedback
(C) Copyright IBM Corporation 2002, 2004. Todos os Direitos Reservados.