繁体   English   中英

设置JUnit测试数据库

[英]Set up JUnit test database

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

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

谢谢

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

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

然后在需要的情况下扩展此类。 例如

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM