2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > java单元测试规范_Java单元测试编码规范

java单元测试规范_Java单元测试编码规范

时间:2022-09-29 21:56:08

相关推荐

java单元测试规范_Java单元测试编码规范

包结构规范

单元测试包结构和源码结构必须保持一致,如下图所示:

文件命名规范

单元测试文件名字是由“被测试文件名 + Test”组成,如下图所示

代码编写规范

基础单元测试类

被各个单元测试继承,代码如下

package test.su.demo;

import test.su.DemoApplication;

import org.junit.runner.RunWith;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**

* Description: 基础测试类

* Date: /3/7 14:23

*/

@RunWith(SpringJUnit4ClassRunner.class)

@SpringBootTest(classes =DemoApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

public abstract class BaseTest {

}

Controller单元测试规范

Controller负责restful接口输出,测试包括post接口和get接口

接口测试参照以下代码

package test.su.demo.controller;

import test.su.demo.BaseTest;

import org.junit.Before;

import org.junit.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.web.servlet.MockMvc;

import org.springframework.test.web.servlet.RequestBuilder;

import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import org.springframework.web.context.WebApplicationContext;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

/**

* Description: controller test demo

* Date: /3/7 11:34

*/

public class DemoControllerTest extends BaseTest{

//@Autowired

private MockMvc mockMvc;

@Autowired

private WebApplicationContext wac;

@Before

public void setup(){

//MockMvcBuilders使用构建MockMvc对象 (项目拦截器有效)

mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();

//单个类 拦截器无效

// mockMvc = MockMvcBuilders.standaloneSteup(userController).build();

}

/**

* test hi interface

*

* @throws Exception

*/

@Test

public void testHi() throws Exception {

String name = "test";

// 1、get查一下接口

RequestBuilder request = get("/demo/hi").param("name", name);

mockMvc.perform(request)

.andExpect(status().isOk())

.andExpect(content().string("hi:" + name));

}

}

Service单元测试规范

service层负责业务逻辑的实现,单元测试规范参照以下代码

package test.su.demo.service;

import test.su.demo.BaseTest;

import org.junit.Assert;

import org.junit.Test;

import org.springframework.beans.factory.annotation.Autowired;

/**

* Description: service unit test

* Date: /3/7 14:23

*/

public class DemoServiceTest extends BaseTest {

@Autowired

private DemoService demoService;

@Test

public void testHi(){

String name = "test";

Assert.assertEquals(demoService.hi(name), "hi:" + name);

}

}

Dao单元测试规范

dao层负责数据的获取,单元测试参照以下代码

package test.su.demo.dao;

import test.su.demo.BaseTest;

import test.su.demo.entity.User;

import org.junit.Assert;

import org.junit.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.annotation.Rollback;

import org.springframework.transaction.annotation.Transactional;

/**

* Description: demo dao test

* Date: /3/7 14:57

*/

@Transactional

public class UserDaoTest extends BaseTest {

@Autowired

private UserDao userDao;

@Test

@Rollback

public void testGet() {

userDao.insert(3, "AAA", 20);

User u = userDao.getById(3);

Assert.assertEquals(20, u.getAge().intValue());

Assert.assertEquals("AAA", u.getName());

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。