如何解决Spring的测试课程无法正常工作
我想测试我的控制器类。但是我无法运行springBootTest类。我的项目是用Spring Boot写的。我们正在使用Spring Boot编写REST API。 当我尝试执行以下测试课程时。我仍然从终端得到以下提示。
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.context.SpringBootTest;
import static org.assertj.core.api.Assertions.assertThat;
/*
*
* @A Sabirov Jakhongir
*
*/
@SpringBootTest
@WebMvcTest
public class PrivilegesControllerTest {
@Autowired
private PrivilegesController privilegesController;
@Test
public void add() {
assertThat(privilegesController).isNotNull();
}
}
我将所有需要的依赖项放在这里,以进行项目测试。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-launcher -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.2</version>
<scope>test</scope>
</dependency>
测试类无法正常工作的原因。
解决方法
使用Junit5
和@SpringBootTest
将加载整个应用程序,我之前也遇到过同样的问题,您可以找到有关问题here的详细信息并回答here。 / p>
解决方案是在不使用@SpringBootTest
的情况下使用测试。
您的测试课程的解决方案如下。
@ExtendWith(MockitoExtension.class)
public class PrivilegesControllerTest {
@InjectMocks
private PrivilegesController privilegesController;
@Test
public void add() {
assertThat(privilegesController).isNotNull();
}
}
您也可以使用@ExtendWith(SpringExtension.class)
代替@ExtendWith(MockitoExtension.class)
要测试Spring Boot应用程序是创建您的控制器,请使用get_dorms
批注,要测试控制器的行为或责任,最好使用{ {1}}。无需将两个注释都注释到一个类中。
有两种情况可以测试控制者的责任。
- 运行服务器时
- 没有服务器
对于第一种情况,您可以使用public function get_dorms(){
$this->db->where('id NOT IN(select dorm_id from reserves)');
$this->db->order_by('id','DESC');
$query = $this->db->get('dorms');
return $query->result_array();
}
来启动具有随机端口的服务器。
对于第二种情况,请使用@SpringBootTest
测试Web层。
所有测试用例均带有以下签名:
@WebMvcTest
您还可以阅读Spring Boot https://spring.io/guides/gs/testing-web/的官方文档
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。