Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Teria alguma forma de refatorar o teste e ele não ficar tão repetitivo?

Gostaria de saber se tem a possibilidade de refatorar o teste para que os cenários não possuam códigos repetitivos. EX: seria possível fazer todos os acertes no primeiro caso de teste e mudar o nome para confirmar pagamento em dia útil?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Olá Edilberto,

Obrigada por compartilhar sua dúvida conosco. Sim, é possível refatorar o teste para evitar a repetição de código. Uma opção seria utilizar a anotação @Before para criar um objeto Payment e configurá-lo com os valores necessários para cada cenário de teste. Dessa forma, você pode criar apenas um objeto e reutilizá-lo em todos os testes.

Por exemplo:

@Before
public void setUp() {
    Payment payment = new Payment();
    payment.setAmount(100.0);
    payment.setDate(LocalDate.of(2021, 9, 10));
    payment.setPaymentMethod(PaymentMethod.CREDIT_CARD);
    payment.setPaymentStatus(PaymentStatus.PENDING);
    this.payment = payment;
}

Além disso, para evitar a repetição de código nos testes, você pode criar um método auxiliar para verificar se o pagamento foi processado corretamente. Dessa forma, você pode chamar esse método em todos os testes que precisam verificar o processamento do pagamento.

Por exemplo:

private void assertPaymentProcessedSuccessfully(Payment payment) {
    assertEquals(PaymentStatus.PROCESSED, payment.getPaymentStatus());
    assertNotNull(payment.getConfirmationCode());
    assertTrue(payment.getConfirmationCode().startsWith("CONF"));
}

Espero que essas sugestões ajudem a refatorar seu teste e torná-lo mais eficiente. Qualquer dúvida, estamos à disposição.

Espero ter ajudado e bons estudos!

Obrigado pela ajuda Matheus.