Olá.
Você disse que existem algumas possibilidades que podem ocorrer com uma camera real que não são tão simples de replicar.
Pode citar alguns exemplos?
Respondendo sua pergunta:
- Particularmente uso muito testes unitários, de integração e de aceitação. Geralmente a parte mais dificil é escrever o primeiro. Depois que ele está pronto os outros são mais simples.
Acredito que tentar ver isso não como testes, mas como especificações/comportamentos que seu código deva ter, facilita encontrar o que você precisa testar. Tenta conversar com a pessoa que hoje faz esses testes e verifica o que ela valida. Pode ser um ponto de partida. Ou pode tentar automatizar o "caminho feliz" e depois levantar outras necessidades.
Pela sua descrição, seus testes possuem dependencias externas o que dificulta um pouco a implementação. Uma sugestão é trabalhar com "mock objects" ou monkeypatch de funções para tentar simular esse dispositivo. Não sei como você faz essa integração mas acredito que exista uma biblioteca que você possa simular as chamadas a ela. Se você criou uma abstração em cima dessa biblioteca fica mais fácil.
- Sim, existe sim. Nunca criei teste automatizado para react mas criei muitos para componentes vue. Dá uma olhada em https://testing-library.com/.
Me ajudou muito a criar testes para componentes em vue usando jsdom para simular o browser. Obviamente não substitui um browser, mas para validar comportamento do componente é excelente. Deixa para testar no browser (também de forma automatizada) apenas o que não consegue rodar no jsdom. O motivo é velocidade. Se testar tudo no browser o tempo de execução e retorno do seu teste será maior e a tendencia é roda-los com menos frequencia. Com isso é legal testar apenas o que não conseguir testar de outra forma.