日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

java dao 单元测试_Spring Service、Dao进行Junit单元测试

發布時間:2023/12/20 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java dao 单元测试_Spring Service、Dao进行Junit单元测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

pring對Controller、Service、Dao進行Junit單元測試總結

? 所有用Junit進行單元測試,都需要下面的配置

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {"classpath:applicationContext.xml"})

? applicationContext.xml 是整個項目的Spring的配置文件。包括數據源配置、MVC配置和各種Bean的注冊掃描。如果你是多個文件,就用都好隔開寫多個,像這樣

{ "classpath:applicationContext.xml","classpath:servlet-context.xml"}

1.Dao層的單元測試。

? 將*Mapper接口注入進來,直接調用即可。加上@Transactional 事物管理注解以后,單元測試執行完后會撤銷對數據庫的修改。想看增刪改的結果的話,可以把這個注解先注釋。

~~~java

package testDao;

import com.susq.mbts.dao.UserMapper;

import com.susq.mbts.domain.User;

import org.junit.Test;

import org.junit.runner.RunWith;

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

import org.springframework.test.context.ContextConfiguration;

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

import org.springframework.transaction.annotation.Transactional;

import java.util.Date;

/**

* Created by susq on 2017-5-3.

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {“classpath:applicationContext.xml”})

@Transactional

public class DaoTests {

@Autowired

private UserMapper userMapper;

@Test

public void testSelect() {

User userInfo = userMapper.selectByPrimaryKey(1L);

System.out.println(userInfo);

}

@Test

public void insert(){

User user = new User();

// user.setId(5L);

user.setAge(“9”);

user.setName(“王五”);

user.setSex(“M”);

user.setCreateTime(new Date());

userMapper.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());

userMapper.updateByPrimaryKey(user);

}

@Test

public void testDelete() {

userMapper.deleteByPrimaryKey(7L);

}

}

2. Service層的單元測試與Dao層基本一致,把Service注入進來調用就行。

~~~java

package testDao;

import com.susq.mbts.domain.User;

import com.susq.mbts.service.UserService;

import org.junit.Test;

import org.junit.runner.RunWith;

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

import org.springframework.test.context.ContextConfiguration;

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

/**

* Created by susq on 2017-5-8.

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {“classpath:applicationContext.xml”})

public class Sertest {

@Autowired

private UserService userService;

@Test

public void selectUserTest() {

User u = userService.selectUser(1);

System.out.println(u);

}

}

3. Controller層的單元測試

? 一種是把Controller的Bean注入進來,調里面的方法,這很顯然比較扯淡,連Url都沒經過,只測了方法。另一種是使用MockMvc模擬通過url的接口調用。MockMvc是SpringMVC提供的Controller測試類,每次進行單元測試時,都是預先執行@Before中的setup方法,初始healthArticleController單元測試環境。

? 注意:一定要把待測試的Controller實例進行MockMvcBuilders.standaloneSetup(xxxxController).build(); 否則會拋出無法找到@RequestMapping路徑的異常:No mapping found for HTTP request with URI [/cms/app/getArticleList] in DispatcherServlet

package testDao;

import com.susq.mbts.controller.UserController;

import org.junit.Before;

import org.junit.Test;

import org.junit.runner.RunWith;

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

import org.springframework.test.context.ContextConfiguration;

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

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

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

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

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

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

/**

* Created by susq on 2017-5-8.

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {"classpath:applicationContext.xml"})

public class ConTest {

@Autowired

private UserController userController;

private MockMvc mockMvc;

@Before

public void setup(){

mockMvc = MockMvcBuilders.standaloneSetup(userController).build();

}

@Test

public void Ctest() throws Exception {

ResultActions resultActions = this.mockMvc.perform(MockMvcRequestBuilders.post("/show_user3").param("id", "1"));

MvcResult mvcResult = resultActions.andReturn();

String result = mvcResult.getResponse().getContentAsString();

System.out.println("=====客戶端獲得反饋數據:" + result);

// 也可以從response里面取狀態碼,header,cookies...

// System.out.println(mvcResult.getResponse().getStatus());

}

}

總結

以上是生活随笔為你收集整理的java dao 单元测试_Spring Service、Dao进行Junit单元测试的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。