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?
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?
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.