dbunit

Using DbUnit with tables which do not have primary keys

天大地大妈咪最大 提交于 2021-02-07 06:23:09
问题 I'm attempting to set up my unit testing environment to use DbUnit. I'm having a few problems as the tables which I am attempting to control do not have primary keys. I have been getting a org.dbunit.dataset.NoPrimaryKeyException . I have followed the steps here http://dbunit.wikidot.com/noprimarykeytable but how do I use: connection.getConfig().setProperty("http://www.dbunit.org/properties/primaryKeyFilter", new MyPrimaryKeyFilter("A1")); for each of my tables? For example, I have the

DBUnit test gives NoSuchColumnException for MariaDB

馋奶兔 提交于 2021-01-28 10:33:18
问题 The important thing to notice that these tests work perfect on Ubuntu and on Server, but fail with the same error on Mac and Windows. So, in my test I use this configuration for connection to Maria db: @Configuration public class EmbeddedDatabase { @Autowired private String defaultSchema; @Bean public MariaDB4jService mariaDB4jService() { MariaDB4jSpringService mariaDB4jSpringService = new MariaDB4jSpringService(); DBConfigurationBuilder config = mariaDB4jSpringService.getConfiguration();

Quartz 定时器,同时运用多个定时器

[亡魂溺海] 提交于 2020-04-22 02:43:23
效果:每天执行两个定时器,两个定时器不相关联。jar版本Quartz 2.2.3 Java工程结构图 jar 包下载: 链接: https://pan.baidu.com/s/1-7dh620k9PnwAbfKW7Mdiw 提取码: i25t jingPhone.java public class jingPhone { private String phoneid; private String biddersPrice; private String yuqiprice; private String second_kill; public jingPhone(){} public jingPhone(String phoneid,String biddersPrice,String yuqiprice,String second_kill){ this.phoneid = phoneid; this.biddersPrice = biddersPrice; this.yuqiprice = yuqiprice; this.second_kill = second_kill; } public String getPhoneid() { return phoneid; } public void setPhoneid(String phoneid) { this.phoneid

单元测试数据库驱动的应用程序的最佳策略是什么?

只愿长相守 提交于 2020-03-21 09:48:15
3 月,跳不动了?>>> 我使用很多Web应用程序,这些应用程序由后端不同复杂程度的数据库驱动。 通常,存在与业务和表示逻辑分离的 ORM 层。 这使得对业务逻辑的单元测试相当简单; 事物可以在离散模块中实现,测试所需的任何数据都可以通过对象模拟来伪造。 但是测试ORM和数据库本身一直充满了问题和妥协。 多年来,我尝试了一些策略,其中没有一个完全满足我。 使用已知数据加载测试数据库。 针对ORM运行测试并确认正确的数据返回。 这里的缺点是您的测试数据库必须跟上应用程序数据库中的任何模式更改,并且可能会不同步。 它还依赖于人工数据,并且可能不会暴露由于愚蠢的用户输入而发生的错误。 最后,如果测试数据库很小,它将不会显示缺失索引等低效率。 (好吧,最后一个不是真的应该使用单元测试,但它不会受到伤害。) 加载生产数据库的副本并对其进行测试。 这里的问题是你可能不知道在任何给定时间生产数据库中有什么; 如果数据随时间变化,您的测试可能需要重写。 有些人指出,这两种策略都依赖于特定的数据,单元测试应该只测试功能。 为此,我见过建议: 使用模拟数据库服务器,并仅检查ORM是否正在发送正确的查询以响应给定的方法调用。 您使用了哪些策略来测试数据库驱动的应用程序? 什么对你有用? #1楼 我实际上已经使用了你的第一种方法取得了相当大的成功,但我认为这种解决方案可以解决一些问题: 保留整个架构和脚本

玩转单元测试之DBUnit

不问归期 提交于 2020-03-09 20:15:54
DBunit 是一种扩展于JUnit的数据库驱动测试框架,它使数据库在测试过程之间处于一种已知状态,如果一个测试用例对数据库造成了破坏性影响,它可以帮助避免造成后面的测试失败或者给出错误结果。 虽然不是什么新鲜货,但最近正好用到,就把学到的跟大家分享一下。 关键词:数据库层测试,DAO层测试,DBUnit教程,DBUnit入门,DBUnit实例,Sring中结合DBUnit对Dao层测试 目录 简介 前提条件 Maven配置 准备工作 实例详解 测试基类 关于数据集 Example 1 FlatXmlDataSet Example 2 ReplacementDataSet Example 3 XlsDataSet Example 4 QueryDataSet Example 5 other Troubleshooting 参考 简介 DBunit通过维护真实数据库与数据集(IDataSet)之间的关系来发现与暴露测试过程中的问题。IDataSet 代表一个或多个表的数据。此处IDataSet可以自建,可以由数据库导出,并以多种方式体现,xml文件、XLS文件和数据库查询数据等。 基于DBUnit 的测试的主要接口是IDataSet, 可以将数据库模式的全部内容表示为单个IDataSet 实例。这些表本身由Itable 实例来表示。 IDataSet 的实现有很多

用DbUnit进行数据库集成测试

北城以北 提交于 2020-03-09 17:10:38
DbUnit 是测试数据库的利器,不过要想弄明白还是需要一番研究。好在它的源代码不多,文档也还算全。我就在此做一个总结吧。 DbUnit.NET是DbUnit的.NET版,不过只推出了alpha版,而且自从06年以后就不再更新了。Stack Overflow上有 一个帖子 ,提出了一些替代方案。 现在的DbUnit要求在测试时继承 DBTestCase ,而不是之前的 DatabaseTestCase (前者继承自后者,而后者继承了junit的 TestCase )。 DatabaseTestCase 包含两个抽象方法, getConnection() 和 getDataSet() ,前者用来获取数据库连接,后者获取要测试的数据集。 数据集 DbUnit可以把所有表的记录存在一个数据集中:既可以是数据库中的表,也可以是文件中的数据。我们在此用 FlatXmlDataSet 来演示。 顺便提一句,DbUnit中还存在另一种格式的数据集 XmlDataSet ,它们的区别如下: 在 FaltXmlDataSet 对应的XML文件里,元素名称对应数据库表名,元素的属性(attribute)对应表的列。如: <dataset> <Person Name="Kirin" Age="31" Location="Beijing"/> <Person Name="Jade" Age="30"/>

DBUnit Test Comparison Failure

拈花ヽ惹草 提交于 2020-01-25 05:18:10
问题 I have a problem with a db unit test which tests if data is persisted correctly. Therefore I created an sample db with my data and tried to compare the setup and the expected data. The id generation and everything else should be managed by hibernate @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DbUnitTestExecutionListener.class }) @DatabaseTearDown("empty.xml") public class UserDaoTests { @Autowired

NoPrimaryKeyException from DBUnit when loading a dataset into a database

依然范特西╮ 提交于 2020-01-13 14:43:54
问题 I'm getting NoPrimaryKeyException when I try to run one of my unit tests which uses DBUnit. The datatable is created using Hibernate and is a join table between two classes mapping a many to many relationship. The annotations that define the relationship are as follows: @Override @ManyToMany @JoinTable(name="offset_file_offset_entries", joinColumns={@JoinColumn(name="offset_entry_id")},inverseJoinColumns={@JoinColumn(name="file_description_id")}) public List<OffsetEntry> getOffsets() { The

Java: DBunitils + Spring: Different Hibernate-Dialect

纵饮孤独 提交于 2020-01-06 08:15:11
问题 I currently use spring for depency injection. Hibernate uses a postgres dialect for the normal run, but I want to use HSQL for the DBUnitils Databank-Testing. My Spring-Configuration contains this: <!-- Hibernate session factory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop>

junit.framework.ComparisonFailure: table count expected [1] but was [95]

孤街醉人 提交于 2020-01-05 18:10:38
问题 I'm new to spring and dbunit and have problem with testing my dao layer. The entry is inserted succsessfully, but test ends with failure. Could you help me, please? import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestExecutionListeners; import org.springframework.test.context.junit4