普通环境下的测试用例 运行速度很快因为没有加载额外的代码
package com.ruoyi.app;
import com.alibaba.fastjson.JSONObject;
import com.easemob.im.server.EMService;
import com.easemob.im.server.api.user.UserApi;
import com.easemob.im.server.model.EMUser;
import com.ruoyi.app.config.EMConfig;
import org.junit.jupiter.api.Test;
import java.util.List;
public class EMTest {
@Test
public void main() {
EMConfig emConfig = new EMConfig();
EMService service = emConfig.service();
UserApi userApi = service.user();
// createUser(service.user(),"tgbd18515065943");
// Long res = userApi.listAllUsers().count().block();
// System.out.println(JSONObject.toJSONString(res));
List<String> data = userApi.listAllUsers().collectList().block();
System.out.println(JSONObject.toJSONString(data));
}
实际开发中我们需要在spring环境下的 调试 比如我们写个关于数据库测试 不可能重新配置一遍吧 太麻烦而且容易出错
通过添加注解@springBootTest 可以实现大多数情况下的 spring环境下的调试
我这里还额外添加了 webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT 意为声明模拟真实环境的调试 因为我这个spring环境中使用了websocket 不使用相对真实的环境会报错的
需要注意的是 测试用例的包名需要和主程序application的包名相同 这样是用于spring扫描吧
运行速度不是很乐观 因为spring内部太复杂 如果一部分代码不加载可能影响功能的使用
package com.ruoyi.app;
import com.ruoyi.app.config.EMConfig;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class DemoApplicationTests {
@Autowired
EMConfig emConfig;
@Test
void contextLoads() {
List<String> list = emConfig.service().user().listAllUsers().collectList().block();
System.out.println(list);
}
}
本文探讨了在普通环境下与Spring环境下测试用例的运行差异,指出Spring环境由于其复杂性导致运行速度较慢,但能更好地模拟实际应用。通过添加@SpringBootTest注解可以在Spring环境中进行调试,特别是在涉及WebSocket的情况下。文章还分享了如何配置@SpringBootTest注解以模拟真实环境,并强调测试用例的包名应与主程序包名一致。此外,文中提及了在Spring Boot测试中使用@Autowired注解加载配置并执行数据库相关的测试操作。
6133

被折叠的 条评论
为什么被折叠?



