1. 程式人生 > >Java對WebService實現類的方法做單元測試

Java對WebService實現類的方法做單元測試

作者:Java兔

學會了使用Junit4對webService介面做單元測試後,這次在service實現類中寫了個方法,不是介面,寫好方法後想寫個單元測試測試一下,卻忽然不知道該如何測試起來。由於這是個獨立的方法,不是個介面,以為只要new一個實現類呼叫下這個方法即可,卻發現方法中涉及到的mapper物件均為null,即注入失敗,不知該如何是好來。後發現,不需要new這個實現類,而是要注入這個實現類,就能成功進行單元測試了。工作中只做過注入介面,現在才發現實現類也是可以注入的,真是慚愧。由此,聯想到既然實現類也能注入使用,那我們寫介面的好處是啥呢?心中答案有很多,但總覺得沒有抓住這個問題的核心,便上網百度了一下,尋尋覓覓算是找到了自認為滿意的答案:多型,雖然現在公司的介面99%都只對應一種實現吧,意義似乎不是很大哎,懶得去糾結了=。=下面是這次單元測試的示例:

待測試的方法

@Autowired
private DeptMapper deptMapper;

/**
 * 獲取諮詢電話
 * @param deptCode 部門編碼
 * @return 諮詢電話
 */
public String getPhoneNumber(String deptCode) {

    DeptEntity deptEntity = null;

    if (deptCode == null || deptCode.equals("")) {
        log.error("部門編碼為空,獲取諮詢電話失敗,預設返回空字串");
        return
""; } int length = deptCode.length(); //如果是總公司,則直接獲取總公司的諮詢電話 if (length == 4) { deptEntity = deptMapper.getDeptInfo(deptCode); //如果是分公司及以下,則優先選擇分公司的諮詢電話 } else { DeptEntity deptEntity1 = deptMapper.getDeptInfo(deptCode.substring(0,4)); DeptEntity deptEntity2 = deptMapper.getDeptInfo(deptCode.substring(0
,6)); if (deptEntity2 == null || StringUtils.isEmpty(deptEntity2.getDeptTelephone())) { deptEntity = deptEntity1; } else { deptEntity = deptEntity2; } } if (deptEntity == null) { log.warn("該部門的諮詢電話為空:{},預設返回空字串", deptCode); return ""; } else { String phoneNumber = deptEntity.getDeptTelephone(); log.info("部門:{}的諮詢電話為:{}",deptCode,phoneNumber); return phoneNumber; } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

測試方法

/**
 * @Author huangjp
 * @create in 2017-8-15 17:01
 * @Description : 獲取諮詢電話介面測試類
 **/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-core.xml","classpath:spring-mybatis.xml",
        "classpath:spring-ht.xml","classpath:spring-task.xml"})
public class BillingDispatchServiceImplTest {

    @Autowired
    private BillingDispatchServiceImpl billingDispatchServiceImpl;

    @Test
    public void testGetPhoneNumber() throws Exception {

        String deptCode = "000101";
        String phoneNumber = billingDispatchServiceImpl.getPhoneNumber(deptCode);
        Assert.assertNotNull("獲取諮詢電話介面返回null,測試失敗",phoneNumber);

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22