DBUnit测试比较失败

时间:2014-02-20 13:33:20

标签: java spring hibernate dbunit

我遇到了db unit测试的问题,它测试数据是否正确保存。因此,我使用我的数据创建了一个示例数据库,并尝试比较设置和预期数据。 id生成和其他所有内容都应该由hibernate管理

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DbUnitTestExecutionListener.class })
@DatabaseTearDown("empty.xml")
public class UserDaoTests {

    @Autowired
    UserAdminDao userDao;

    @Test
    @DatabaseSetup("db-setup.xml")
    @ExpectedDatabase("db-expected.xml")
    public void testPersistUser(){

        User user = new User();

        user.setUserId("user2");
        user.setName("test2");
        user.setEmail("user2@email.com");
        user.setLocked(false);
        user.setEnabled(true);
        user.setVersion(0);
        user.setPassword("asdfasdf");

        userDao.persist(user);

    }

}

我的设置是:

<dataset>       
    <user id="1" userId="user1" name="test1" email="user1@email.com" locked="0" enabled="1" version="0" password="asdfasdf" /> 

</dataset>

与下面的用户ID = 2相同:

<user id="2" userId="user2" name="test2" email="user2@email.com" locked="0" enabled="1" version="0" password="asdfasdf" />

但是我收到了比较错误:

junit.framework.ComparisonFailure: row count (table=user) expected:<[2]> but was:<[1]>

不确定我的错误在哪里。 thx任何帮助:)

1 个答案:

答案 0 :(得分:1)

您必须将表名添加到&#34; @ ExpectedDatabase&#34; 像这样的东西 @ExpectedDatabase(value =&#34; dataset.xml&#34;,table =&#34; your_table_name&#34;)