【问题标题】:DBUnit Test Comparison FailureDBUnit 测试比较失败
【发布时间】:2014-02-20 13:33:19
【问题描述】:

我的数据库单元测试有问题,它测试数据是否正确保存。因此,我用我的数据创建了一个示例数据库,并尝试比较设置和预期数据。 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]>

不知道我的错误在哪里。感谢您的帮助:)

【问题讨论】:

  • 但据我了解,@DatabaseSetup 表示测试前的数据库状态,@ExpectedDatabase 表示测试后的状态。为什么测试前数据库中不能有用户。在我坚持另一个(user2)之后应该有2个,或者我有什么问题吗?
  • 您是否已经验证您的 persist 方法在您的测试之外有效?如果不是,ComparisonFailure 听起来很合乎逻辑……
  • 我的@Transactional DAO 方法和dbunit 似乎有问题。我添加了TransactionDbUnitTestExecutionListener.class,但我认为@ExpectedDatabase 是在事务之后调用的。
  • 我遇到了同样的问题,但是删除:junit.framework.ComparisonFailure: row count (table=user) expected:&lt;[4]&gt; but was:&lt;[5]&gt; 我使用了一个 postgres 数据库,我看到该行不再存在...你让它工作了吗?
  • 几年后...有什么更新吗?

标签: java spring hibernate dbunit


【解决方案1】:

您必须将表名添加到“@ExpectedDatabase” 像这样的东西 @ExpectedDatabase(value = "dataset.xml", table = "your_table_name")

【讨论】:

猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2013-10-29
  • 2022-06-30
  • 2021-01-31
  • 2016-09-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
相关资源
最近更新 更多