设置JUnit测试数据库

时间:2012-07-26 02:54:22

标签: java database unit-testing testing junit

void insertAllRecords(){
    insertRecord("tom", 100);
    insertRecord("jake", 200);
    insertRecord("tim", 300);
    insertRecord("andy", 400);
    insertRecord("mike", 500);
}

我正在为具有测试数据库的内容编写JUnit测试。它从一个空数据库开始。 我想测试不同的东西,但我不希望重复insertRecord具有相同的参数。

是否有一种简单的方法来指定要执行的行?例如,我只想在其中一个@test函数中添加tom和andy。

我知道在每种测试方法中,数据库开始为0。 我希望能够:

  • 在testA中,用tom和jake设置db。
  • 在testB中,使用andy设置db 和迈克。
  • 在testC中,使用所有这些设置数据库。

但我不想在每个测试中都插入单独的insert语句。我希望能够使用一些参数调用insertAllRecords。

由于

2 个答案:

答案 0 :(得分:0)

据我所知,JUnit不支持您想要的行为。您可能需要查看TestNG,它允许使用@BeforeMethod@AfterMethod注释进行特定于测试的设置。它还允许使用带有@Parameter@DataProvider注释的参数化数据来提供更灵活的测试数据。

答案 1 :(得分:0)

使用抽象方法abstract void insertAllRecords();

将Junit类转换为抽象类

然后在你需要的情况下扩展这个类。例如

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

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