SpringMVCテスト@Test

5177 ワード

@RunWith(SpringJUnit4ClassRunner.class)  
@ContextConfiguration({"classpath*:applicationContext.xml"})  
public class SpringTestUser {  
    private static final Logger logger = LoggerFactory.getLogger(SpringTestUser.class);  

    @Resource  
    private UserDAO userDao;  

    @Test  
    public void testGetUserById() {  
        Integer userId = 1;  
        User user = userDao.getUserById(userId);  
        logger.info("  : " + user.getName());  
    }  
}  

注意ラベル@RunWith(SpringJUnit 4 ClassRunner.class)は、このコードが実用的かJUnitがテストした@ContextConfiguration({「classpath*:applicationContext.xml」)がラベル形式でプロファイルのロードを完了することを意味します.
import static org.Junit.Assert.assertEquals; 

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 domain.Account; 

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration("/config/Spring-db1.xml") 
@Transactional 
public class AccountServiceTest1 { 
    @Autowired 
    private AccountService service; 

    @Test 
    public void testGetAcccountById() { 
Account acct = Account.getAccount(1, "user01", 18, "M"); 
        service.insertIfNotExist(acct); 
        Account acct2 = service.getAccountById(1); 
        assertEquals(acct,acct2); 
        }
    } 
  • @RunWithコメントラベルはJunitから提供され、このテストクラスの実行者を説明するために使用されます.ここではSpringJUnit 4 ClassRunnerが使用されています.このクラスはJunit実行環境に対するカスタム拡張であり、Spring環境におけるJunit 4を標準化するために使用されます.5の試験例、例えばサポートされている注釈タグの標準化
  • @ContextConfigurationコメントラベルはSpring test contextが提供するもので、Spring構成情報のソースを指定し、XMLファイルの場所またはSpring構成クラス名の指定をサポートします.ここではclasspathの下の/config/Spring-db 1を指定します.xmlはプロファイルの場所
  • @Transactionalコメントラベルは、このテストクラスのトランザクションが有効になっていることを示しています.これにより、すべてのテストスキームが自動的にrollbackになります.つまり、自分が行ったデータベースへの変更を自分でクリアする必要はありません.
  • @Autowiredは、私たちのテストクラスもSpringのコンテナで管理されていることを示しています.彼はコンテナのbeanの注入を取得することができます.自分でテストするbeanのインスタンスを手動で取得する必要はありません.
  • 小結


    Spring環境でユニットテストを行う場合は、@Testコメントラベルと関連するクラスとメソッドの定義を含むJunit 4テストフレームワークを引き続き使用するように構成できます.
  • @RunWith(SpringJUnit 4 ClassRunner.class)でSpringのテストクラスサポート
  • を開始する必要があります.
  • @ContextConfigurationコメントラベルでSpringプロファイルまたは構成クラスの場所を指定する必要があります
  • @Transactionalで自動トランザクション管理を有効にする必要がある
  • @Autowiredを使用してSpringに自動的に織り込まれたbeanを使用して
  • をテストできます.
    また、次の必要はありません.
  • Springのプロファイルを手動でロードする
  • 手動でデータベースをクリーンアップするたびの変更
  • アプリケーションcontextを手動で取得し、beanインスタンス
  • を取得する.