使用Spring Boot和JUnit来进行单元测试
使用Spring Boot和MySQL来实现简单的Web REST API服务器- Qiita
大纲
如果测试目标类没有依赖于其他类,可以使用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的自动补全功能,使用起来很方便。)