Fala ai Fábio, tudo bem? Vamos lá:
Quais são todos os tipos de testes pra front-end
Existem N tipos de testes, os mais comuns são:
- Testes unitários
- Testes e2e.
- Testes de comportamento
- Testes de renderização
- Testes de tela
- Testes de UI
As vezes os nomes acabam de misturando, alguns consideram que testes de comportamento, tela e ui são os mesmos que o e2e.
quais os principais frameworks pra cada um?
Para testes unitários acredito que o principal seja o Jest:
https://jestjs.io/
Para testes de e2e o Cypress:
https://www.cypress.io/
Para testes de comportamento o Testing library:
https://testing-library.com/
Para testes de tela/ui o Percy:
https://percy.io/
Obs: Lembrando que essa separação de tipos de teste é uma opinião minha, você pode ver coisas diferentes por ai, sendo à mais ou à menos.
Segunda dúvida, pelo que entendi o teste de unidade (o que usamos o jasmine no curso para tal), é basicamente para classes "model" em orientação a objetos, ou funções que retornem um valor "calculável"?
Na verdade o teste unitário pode ir além, você pode testar estado da aplicação, API's, constantes, traduções, etc...
Basicamente a ideia é você testar entradas e garantir suas saídas.
Espero ter ajudado.