我是自动化测试和dbUnit的新手。因此,感谢您的建议。
我将创建一个测试套件,它将以以下方式运行:
到那里对我来说看起来不错,但是我不明白,是在测试运行并更改数据后如何将数据库还原为 STATE0 ?
我可以使用dbUnit吗?
还是其他?
我应该在每次测试之前重新创建数据库吗?
在测试中简单地不提交事务对我来说不合适,因为测试最终将运行多个事务,并且可能运行多个数据库连接。
如果正确编写和方法@BeforeClass
,DBUnit可以自动完成四个工作。例如,在我们的项目中,使用Derby,一个这样的测试用例看起来像@Before``@After
public class MyTest {
protected static IDataSet getDataSet() throws Exception {
URL url = MyTest.class.getClassLoader().getResource("MyDataSet.xml");
return new XmlDataSet(new FileInputStream(url.getPath()));
}
private static JdbcDatabaseTester databaseTester;
@BeforeClass
public static void setUpClass() throws Exception {
// Init test environment, session etc.
databaseTester = new JdbcDatabaseTester(
"org.apache.derby.jdbc.ClientDriver",
"jdbc:derby://localhost:1527/myschema",
"username", "password");
databaseTester.setDataSet(getDataSet());
}
@AfterClass
public static void tearDownClass() {
// Close session etc.
}
@Before
public void setUp() throws Exception {
databaseTester.onSetup();
}
@After
public void tearDown() throws Exception {
databaseTester.onTearDown();
}
@Test
public void test() throws Exception { ... }
}
此代码将DB模式(的一个子集)恢复到MyDataSet.xml
每次测试后定义的状态。(请注意,正如@Pascal所评论的那样,重置可能并不总是完整的-
如果测试修改了不在数据集中的表,它将不受@Before
/ @After
方法的影响。)
概述 Sublime Text 可以通过删除 data 文件夹的方式恢复到初始状态。不同操作系统这个文件夹的位置也不同: OS X:~/Library/Application Support/Sublime Text 3 Windows:%APPDATA%\Sublime Text 3 Linux:~/.config/sublime-text-3 恢复到初始状态,你需要: 退出 Sublime T
我正在做一个练习题,练习它 这个问题基本上是在PriorityQueue和某个k中传递,然后返回该PriorityQueue中的第k个最小值。您还需要将PriorityQueue恢复到其初始状态,并可以使用一个堆栈或队列作为辅助数据结构。 我的更高层次的伪思想是,因为PriorityQueue已经充当了最小堆,从JavaPriorityQueue,我真正要做的(我的算法)是: > 从Priorit
问题内容: 首次启动应用程序后,我需要向SQLite数据库添加初始值。我该怎么办? 问题答案: 在DBAdapter.java类文件中,您可以执行此操作。 喜欢这种类型。
问题内容: 部署应用程序时,我经常使用Hibernate的功能来创建数据库架构,以简化部署。通过配置hibernate.hbm2ddl.auto属性可以轻松实现。 但是,有时我还需要向数据库中插入一些初始数据,例如root用户。有什么办法可以通过hibernate并加载某种文本文件来实现? 我知道我可以很容易地对将要执行此操作的代码进行编程,但是只是想知道是否已经有一些实用程序可以帮助我通过配置实
我有一个类似这样的JSON对象, 我正在我的vue模板中循环使用这个来创建一个选择菜单, 通过将select绑定到data_type,每次我进行select更改时,它都会更新数据/json中该对象的数据。我想知道的是,是否可以在更改之前获取旧值? 我试着做了一些事情, 但是,新值和旧值似乎是相同的?
问题内容: 我在做练习题练习IT Kth最小 基本上,这个问题是您在PriorityQueue和某个k中传递的,并且要在那个PriorityQueue中返回第k个最小值。您还需要将PriorityQueue恢复为其初始状态,并且可以使用一个堆栈或队列作为辅助数据结构。 我的高级伪思维是,由于PriorityQueue已经充当了最小堆,因此从Java PriorityQueue中 ,我真正要做的(我