2012-07-26 7 views
0
void insertAllRecords(){ 
    insertRecord("tom", 100); 
    insertRecord("jake", 200); 
    insertRecord("tim", 300); 
    insertRecord("andy", 400); 
    insertRecord("mike", 500); 
} 

테스트 데이터베이스가있는 항목에 대해 JUnit 테스트를 작성했습니다. 빈 데이터베이스로 시작합니다. 다른 것들을 테스트하고 싶지만 같은 매개 변수를 사용하여 insertRecord을 복제하고 싶지는 않습니다.JUnit 테스트 데이터베이스 설정

실행할 행을 지정하는 간단한 방법이 있습니까? 예를 들어, 톰과 앤디를 @test 함수 중 하나에 추가하기 만하면됩니다. 톰과 제이크와

종피에
  • 설정, DB : 나는 각 시험 방법 알고

    , 데이터베이스 내가 할 수있게하려면 0으로 시작됩니다. testB의

  • , andy 및 mike를 사용하여 db를 설정하십시오. testC에서
  • , 모두 함께 db를 설정하십시오.

하지만 모든 테스트에 개별 삽입 문을 넣고 싶지는 않습니다. 일부 매개 변수를 사용하여 insertAllRecords를 호출 할 수 있기를 원합니다.

감사

+1

통합 테스트에서는 테스트가 완료된 후 데이터베이스 레코드를 롤백해야합니다. 그렇게하면 중복에 대해 걱정할 필요가 없습니다. –

+0

나는 각 열에 대해 여러 개의 배열을 가질 수 있으며 원하는 루프를 추가하는 루프를 가질 수 있습니다. 더 나은 방법이 있습니까? –

+0

데이터를 조롱하지 않는 이유는 무엇입니까? mockito와 같은 것 ... – aviad

답변

0

는 지금까지 내가 아는 한, JUnit을 원하는 동작을 지원하지 않습니다. @BeforeMethod@AfterMethod 주석을 사용하여 테스트 특정 설정을 허용하는 TestNG을 살펴볼 수 있습니다. 또한 @Parameter 또는 @DataProvider 주석이있는 매개 변수화 된 데이터를 사용하여보다 유연한 테스트 데이터를 허용합니다.

0

abstract void insertAllRecords();

가 그런 경우에이 클래스를 확장 추상 메소드와 추상 클래스에 Junit와 클래스를 변환, 당신은해야합니다. 예를 들어,

class TestWithTomClass extends AbstractTestClass{ 
    public void insertAllRecords(){ 
     insertRecord("tom", 100); 
    } 

    @Test 
    public void myTestWithTom(){ 
     .... 
    }