在Spring Boot中,我们可以使用Spring Boot Test模块和JUnit来编写单元测试。下面是一个简单的示例,展示了如何为一个简单的服务类编写单元测试:
<!-- ...其他依赖... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
CalculatorService
:package com.example.demo.service;
import org.springframework.stereotype.Service;
@Service
public class CalculatorService {
public int add(int a, int b) {
return a + b;
}
}
CalculatorServiceTests
:package com.example.demo.service;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import static org.junit.Assert.assertEquals;
@RunWith(SpringRunner.class)
@SpringBootTest
public class CalculatorServiceTests {
@Autowired
private CalculatorService calculatorService;
@Test
public void testAdd() {
int result = calculatorService.add(5, 3);
assertEquals("Addition of 5 and 3 failed", 8, result);
}
}
在这个例子中,我们使用了@RunWith(SpringRunner.class)
注解来运行测试,这样我们就可以使用Spring Boot的自动配置特性。@SpringBootTest
注解表示这是一个Spring Boot测试,它会启动一个内嵌的应用程序上下文,并将其与测试类关联。
我们使用@Autowired
注解将CalculatorService
实例注入到测试类中。然后,我们编写了一个名为testAdd
的测试方法,该方法使用@Test
注解标记。在这个方法中,我们调用calculatorService.add()
方法,并使用assertEquals()
方法验证结果是否正确。
要运行此测试,只需在IDE中右键单击测试类或方法,然后选择“运行测试”或“运行所有测试”。测试应该成功通过,表明我们的CalculatorService
类按预期工作。