Skip to content

Projeto utilizado na apresentação da palestra "Testes Além Do Código" na trilha Testes no TDC Connections 2022.

Notifications You must be signed in to change notification settings

jonathanmdr/method-chain-with-dsl-tests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Testes Além do Código

Projeto utilizado na apresentação da palestra "Testes Além Do Código" na trilha Testes no TDC Connections 2022.

CI CodeFactor

Sobre o Projeto

O projeto consiste em uma pequena calculadora contendo as quatro operações básicas: soma, subtração, multiplicação e divisão.

Exemplo de teste tradicionalmente escrito:

@Test
void shouldBeApplySum() {
    OperationData operationData = OperationData.builder()
        .firstNumber(10)
        .secondNumber(10)
        .build();

    BigDecimal actual = SUM.execute(operationData);

    Assertions.assertThat(actual)
        .usingComparator(BigDecimal::compareTo)
        .isEqualTo(BigDecimal.valueOf(20));
}

Exemplo de teste utilizando DSL + Method Chaining:

@Test
void shouldBeApplySumWithDsl() {
    given()
        .firstNumberEqualTo(10)
        .secondNumberEqualTo(10)
    .when(SUM::execute)
    .then()
        .assertResult()
            .isEqualTo(20);
}

Exemplo com cenário de falha utilizando DSL + Method Chaining:

@Test
void shouldBeThrownBusinessExceptionWhenApplyingDivisionByZero() {
    given()
        .firstNumberEqualTo(10)
        .secondNumberEqualTo(0)
    .when(DIVISION::execute)
    .then()
        .assertException()
            .isInstanceOf(BusinessException.class)
            .messageIsEqualTo("An unexpected error occurred");
}

Outros projetos com exemplos:

Projeto: Java + Spring + JUnit + Mockito
Projeto: Java + JUnit + Mockito + Generics

About

Projeto utilizado na apresentação da palestra "Testes Além Do Código" na trilha Testes no TDC Connections 2022.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published