商城网站建设咨询,php做的网站好不好,上海建网站费用优帮云,寻甸马铃薯建设网站单元测试
保证独立性。 Assert#xff1a;断言#xff0c;一般用来比较是否相等#xff0c;比如 Assert.assertEquals 在JUnit测试框架中#xff0c;BeforeClass#xff0c;Before#xff0c;After和AfterClass是四个常用的注解#xff0c;它们的作用如下#xff1a; …单元测试
保证独立性。 Assert断言一般用来比较是否相等比如 Assert.assertEquals 在JUnit测试框架中BeforeClassBeforeAfter和AfterClass是四个常用的注解它们的作用如下 BeforeClass这个注解应用于静态方法表示这个方法会在所有测试方法之前执行一次。通常用于进行一些耗时的初始化操作例如连接数据库。 Before这个注解应用于方法表示这个方法会在每个测试方法执行之前执行。通常用于进行一些初始化操作例如重置某些变量。 After这个注解应用于方法表示这个方法会在每个测试方法执行之后执行。通常用于进行一些清理操作例如关闭数据库连接。 AfterClass这个注解应用于静态方法表示这个方法会在所有测试方法之后执行一次。通常用于进行一些清理操作例如释放资源。 这四个注解的执行顺序是BeforeClass - Before - 测试方法 - After - AfterClass。 RunWith(SpringRunner.class)
SpringBootTest
ContextConfiguration(classes CommunityApplication.class)
public class SpringBootTests {Autowiredprivate DiscussPostService discussPostService;private DiscussPost data;BeforeClasspublic static void beforeClass() {System.out.println(beforeClass);}Beforepublic void before() {// 初始化测试数据System.out.println(before);this.data new DiscussPost();data.setUserId(111);data.setTitle(test title);data.setContent(Test);data.setCreateTime(new Date());data.setScore(Math.random() * 2000);discussPostService.addDiscussPost(data);}Afterpublic void after() {// 删除测试数据System.out.println(after);discussPostService.updateStatus(data.getId(), 2);}AfterClasspublic static void afterClass() {System.out.println(afterClass);}Testpublic void testFindById() {DiscussPost post discussPostService.findDiscussPostById(data.getId());//判断data和post是否一致Assert.assertNotNull(post);Assert.assertEquals(data.getTitle(), post.getTitle());Assert.assertEquals(data.getContent(), post.getContent());}Testpublic void testUpdateScore() {int rows discussPostService.updateScore(data.getId(), 2000.00);Assert.assertEquals(1, rows);DiscussPost post discussPostService.findDiscussPostById(data.getId());Assert.assertEquals(2000.00, post.getScore(), 2);}}执行整个类 项目监控 下面演示的使用HTTP进行监控。
导入依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId
/dependency导入后就默认启用二十多个端点大多数都启用只有一个关闭服务器的端点未启用最好不要启用但只暴露了两个端点health和info 配置暴露
除了info和caches端点其余全暴露
# 暴露所有端点
management.endpoints.web.exposure.include*
management.endpoints.web.exposure.excludeinfo,caches
management.endpoint.health.show-detailsalwaysbeans: loggers …
自定义端点
创建actuator/DatabaseEndPoint类
Component
//访问路径/actuator/database
Endpoint(id database)
public class DatabaseEndpoint {private static final Logger logger LoggerFactory.getLogger(DatabaseEndpoint.class);//通过连接池获取连接查询数据库Autowiredprivate DataSource dataSource;//ReadOperation表示只能通过GET请求访问ReadOperationpublic String checkConnection() {try (Connection conn dataSource.getConnection();) {return CommunityUtil.getJsonString(0, 获取连接成功);} catch (Exception e) {logger.error(获取连接失败 e.getMessage());return CommunityUtil.getJsonString(1, 获取连接失败);}}}
访问database 添加权限管理
.requestMatchers(/discuss/delete,/data/**,/actuator/**).hasAnyAuthority(AUTHORITY_ADMIN)项目部署Deprecated
本地代码传到云服务器→ 云服务器打包→ 云服务器部署
云服务器内存暂时不够先跳过。 项目总结 常见面试题Deprecated
等到面试在看。