使用Spring Boot和JUnit来进行单元测试

使用Spring Boot和MySQL来实现简单的Web REST API服务器- Qiita

大纲

undefined

如果测试目标类没有依赖于其他类,可以使用JUnit来简单地构建。
本次作为示例,我们将测试在基础设施层中创建的Entity类。
使用Spring Boot和JPA实现REST API(基础设施层部分)- Qiita

准备

如果按照之前的步骤创建了项目(Spring Initializr),那么特别准备是不必要的。
JUnit已经可以使用了(spring-boot-starter-test)。

UserEntityTests.java的中文释义:用户实体测试。

package com.example.springapi.infrastructure;

import com.example.springapi.domain.object.User;
import com.example.springapi.infrastructure.entity.UserEntity;
import org.junit.Before;
import org.junit.Test;

import static org.assertj.core.api.Assertions.assertThat;

public class UserEntityTests {
    private final static String TEST_ID = "test_id";
    private final static String TEST_VALUE = "test_value";

    private User expectedUser;
    private UserEntity expectedUserEntity;

    @Before
    public void setup() {
        this.expectedUser = User.builder()
                .id(TEST_ID)
                .value(TEST_VALUE)
                .build();

        this.expectedUserEntity = UserEntity.builder()
                .id(TEST_ID)
                .value(TEST_VALUE)
                .build();
    }

    @Test
    public void buildTests() {
        UserEntity actual = UserEntity.build(this.expectedUser);

        assertThat(actual.getId()).isEqualTo(this.expectedUser.getId());
        assertThat(actual.getValue()).isEqualTo(this.expectedUser.getValue());
    }

    @Test
    public void toDomainTests() {
        User actual = this.expectedUserEntity.toDomainUser();

        assertThat(actual.getId()).isEqualTo(this.expectedUserEntity.getId());
        assertThat(actual.getValue()).isEqualTo(this.expectedUserEntity.getValue());
    }
}

@Test

在测试运行时,它将成为被执行的方法。
通过在参数”expected”中指定Throwable类,可以将异常抛出的情况作为测试。

@Test(expected = IllegalStateException.class)

在这之前

这是一个在调用了标有@Test注解的方法之前执行的方法。

断言核心Api中的org.assertj.core.api.Assertions.assertThat。

断言的写法之一。
一个名为AssertJ的库的API。(与JUnit类似,可以从一开始就使用。)
可以通过方法链的方式进行描述。(由于IDE的自动补全功能,使用起来很方便。)

广告
将在 10 秒后关闭
bannerAds