Spring+Junitで単体テスト

1.テスト用BaseTestクラスを作成、サブクラス継承のため設定
Javaコード:
package com.jiekuaida.service.impl;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

//テストクラスに対してSpringのサポート
@RunWith(SpringJUnit4ClassRunner.class)
// Spring配置ファイルまたは配置クラス場所を指定
@ContextConfiguration(locations = {
“/com/jiekuaida/config/spring/applicationContext-aop.xml",
“/com/jiekuaida/config/spring/applicationContext-basic.xml",
“/com/jiekuaida/config/spring/applicationContext-component.xml",
“/com/jiekuaida/config/spring/applicationContext-dao.xml",
“/com/jiekuaida/config/spring/applicationContext-memcacahed.xml",
“/com/jiekuaida/config/spring/applicationContext-security.xml",
“/com/jiekuaida/config/spring/applicationContext-service.xml"})
// 自動トランザクション管理を有効にする
@Transactional
// transactionManager属性を指定,ディフォルトtransactionManager
//defaultRollback属性を指定,ディフォルトは true
@TransactionConfiguration(transactionManager = “txManager", defaultRollback = true)
public class BaseTest {
}

2.サブテストクラス
public class OwnerTest extends BaseTest {
//Springの設定自動的にスキャン無しで直接挿入
@Resource
private OwnerDao ownerDao;

@Test
public void testOwner() throws Exception {
System.out.println(ownerDao.findOwnerByJKDUserId(1));
}
}

Development

Posted by arkgame