이번에는 이전 시나리오와 비슷하지만, 테스트 데이터를 클래스 단위가 아니라 메서드 단위 즉, JUnit에서 테스트 단위로 관리하는 방법입니다. 아직은 미완성이라고 볼 수 있는데, 지금 상태에서도 아래와 같이 코딩을 한다면, 이 시나리오가 가능합니다.

@RunWith(WebTestRunner.class)
@WarConfiguration("springsprout")
//@DataConfiguration(fileName="testData.xml")
public class SampleWebTest {

    @WebTest
    public void sinario1(){
        DataManager dm = new DefaultDataManager("integration/sample/testData1.xml", DataType.XML);
        dm.insertTestData();
        System.out.println("test1");
    }

    @WebTest
    public void sinario2(){
        DataManager dm = new DefaultDataManager("integration/sample/testData2.xml", DataType.XML);
        dm.insertTestData();
        System.out.println("test2");
    }

}

@DataConfiguration을 클래스에서 제거하면 되고, 소스코드에서 직접 DataManager API를 사용하여, 테스트 데이터를 넣을 수 있습니다. 위 예제에서는 두 개의 테스트에서 각각 다른 테스트 데이터를 넣고 있습니다.


테스트 데이터를 매번 지우고 싶다면, deleteTestData() 메서드를 이용해도 되지만, insertTestData가 내부적으로 DBUnit의 CLEAN_INSERT를 이용하기 때문에 그럴 필요는 없습니다.

이 코드는 차후에 JUnit 4.7의 인터셉터 기능을 이용해서 개선할 예정입니다. 지금은 스냅샷 정도록 생각해주세요