3
respostas

Herança nas specs e nos page objects

Por exemplo, se vou testar um app eu sempre vou abrir a mesma url.Ao finalizar um teste vou querer salvar um screenshot. Como posso fazer um e2e-spec.ts base? Fazendo com que todas as minhas specs herdem estes comportamentos? Do mesmo jeito que se eu quiser criar uma base de page objects posso também?

3 respostas

Fala ai Camila, tudo bem?

Como posso fazer um e2e-spec.ts base?

Acho que seria mais interessante você criar um base para os page objects.

Poderia fazer algo mais ou menos assim:

class BasePage {
    goToHome() {
        browser.get('/')
    }
}

Depois nos seus Page Objects você herda da base:

class LoginObject extends BasePage {}

Dai no teste:

it('Algum teste', () => {
    loginObject.goToHome()
})

A ideia seria mais ou menos assim.

Espero ter ajudado.

Olá, tudo bem sim! Isto eu já fiz, pois existem mesmo métodos que são comuns a todos os page objects. Mas eu me refiro a ações comuns entre cenários de teste. Por exemplo: Um teste é executado e falha. Quando falhar eu quero tirar um screenshot da tela de qualquer teste que eu possuir. Então, o local mais adequado pra isto na minha opinião é numa class TestBase num método after. Como eu faria isto?

Isso vai depender de cada gosto pessoal ou da empresa.

Nesses casos eu gosto de criar funções utilitárias, geralmente crio uma pasta utils e dentro dela um string.jspor exemplo, nesse arquivo terão funções utilitárias referente a String.

No seu caso poderia ser um utils/test.js, onde são funções utilitárias para os testes.

Ai eu importaria a função e chamaria dentro dos testes.

Espero ter ajudado.