java技术--Spring单元测试

1.Spring对Controller、Service、Dao进行Junit单元测试总结
(1) 所有用Junit进行单元测试,都需要下面的配置

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
(1)applicationContext.xml 是整个项目的Spring的配置文件。包括数据源配置、MVC配置和各种Bean的注册扫描
(2)如果有多个文件,就用逗号隔开写多个,像这样
@ContextConfiguration(locations = { "classpath:applicationContext.xml","classpath:servlet-context.xml"})

2.Dao层的单元测试
(1) 将*DAO接口注入进来,直接调用即可
(2)加上@Transactional 事物管理注解以后,单元测试执行完后会撤销对数据库的修改
(3)代码示例

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {“classpath:applicationContext.xml”})
@Transactional
public class DaoTests {
@Resource
private UserDAO userDAO;
@Test
public void testSelect() {//查询
    User userInfo = userDAO.selectByPrimaryKey(1L);
    //断言
    Assert.assertEquals(userId, userDAO.getUser( userId ).getUserId());
	Assert.assertEquals(nickname, userDAO.getUser( userId ).getNickname());
    System.out.println(userInfo);
}
@Test
public void insert(){//添加
    User user = new User();
    user.setAge(9);
   user.setName(“王五”);
  user.setSex(“M”);
  user.setCreateTime(new Date());
  userDAO.insert(user);
@Test
public void testUpdate() {//更新
    User user = new User();
    user.setId(5L);
    user.setAge("999");
    user.setName("王五");
    user.setSex("M");
    user.setCreateTime(new Date());
    userDAO.updateByPrimaryKey(user);
}
@Test
public void testDelete() {//删除
    userMapper.deleteByPrimaryKey(7L);
}

2.Service层单元测试
(1)与Dao层基本一致,把Service注入进来调用就行
(2)代码示例

```java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {“classpath:applicationContext.xml”})
public class Servicetest {
@Resource
private UserService userService;
@Test
public void selectUserTest() {
    User u = userService.selectUser(1);
    System.out.println(u);
}

3.Controller层单元测试
(1)MockMvc是SpringMVC提供的Controller测试类
(2)每次进行单元测试时,都是预先执行@Before中的setup方法,初始healthArticleController单元测试环境
(3)代码示例

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public class ControllerTest {
    @Resource
    private UserController userController;
   // 模拟request,response
    private MockHttpServletRequest request;
    private MockHttpServletResponse response;
    // 执行测试方法之前初始化模拟request,response
    @Before
    public void setUp(){
        request = new MockHttpServletRequest();
        request.setCharacterEncoding("UTF-8");
        response = new MockHttpServletResponse();
    }
   /**
     * @Description: 测试用户登录
     */
    @Test
    public void testLogin() {
        try {
            request.setParameter("userName", "admin");
            request.setParameter("password", "2");
            Assert.assertEquals("login",loginController.loginTest(request,response)) ;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4.postman 自测

(1)一般是用于自测 restful 类型的接口
(2)用于自测前后端对接调用的接口等

5.SpringBoot单元测试

(1)使用SpringBoot快速搭建好项目后,进行快速测试
(2)导入测试依赖
      <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>
(3)在测试类使用两个注解
      <1>@RunWith(SpringRunner.class)
      <2>@SpringBootTest
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值