0
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 和mike 设置数据库。
  • 在 testC 中,使用所有这些设置 db。

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

谢谢

4

2 回答 2

0

使用抽象方法将您的 Junit 类转换为抽象类abstract void insertAllRecords();

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

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

    @Test
    public void myTestWithTom(){
       ....
    }
于 2012-07-26T05:44:46.960 回答
0

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

于 2012-07-26T03:41:00.183 回答