- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用dbunit来测试系统的数据库。由于可以使用相同的数据集测试多个测试用例,因此我想为所有测试用例初始化一次数据集。但我也使用spring的@AutoWire来初始化那些数据库连接参数。
我尝试使用@BeforeClass和@AfterClass来设置数据库。但事实证明 @Autowire 在类启动时发生(似乎不适用于自动连接静态成员)。
所以想知道是否有其他方法可以在所有测试用例之前/之后设置/拆除数据库数据集?
我找到了一个优雅的解决方案:
How to allow instance methods to run as JUnit BeforeClass behavior
这篇文章基本上解释了一种更改单元测试运行程序以触发事件的方法。对于 spring,也可以使用 AbstractTestExecutionListener
最佳答案
只需使用ApplicationListener接口(interface)初始化数据库即可。请看一下这个问题: How to add a hook to the application context initialization event?可以在 onApplicationEvent 方法中创建所有数据。
无论如何,不要使用 dbunit,只需使用 @Transactional 和 @DirtiesContext 创建所有测试即可。 (类级别的 DirtiesContext)使用 ClassMode=AfterEachTestMethod所以代码会是这样的:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:testContext.xml" })
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public class YourTestClassTest {
//...
}
关于java - 如何在不使用静态 @BeforeClass 的情况下设置/拆卸 dbunit 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794313/
我正在测试一个类,有很多测试方法。但是,每种方法都有一个独特的上下文。然后我编写如下代码: class TestSomeClass(unittest.TestCase): def test_a
我有一些机器人测试用例在目录中分开。目录层次结构是: ParentTestDirectory |__ ChidTestDirectoryOne |__ TestOne.robo
是否有在测试场景开始/结束时触发的函数? setUp 和 tearDown 函数在每次测试之前/之后触发。 我通常想要这个: class TestSequenceFunctions(unittest.
我有一个商店,里面有元素。每个项目要么是一个组件(它是原子的),要么是由各种组件(但绝不是 2 个或更多相同组件)组成的产品。 现在,当我想从商店取货时,有多种情况: 商店包含必要数量的产品。 商店包
在我的 Selenium 框架中使用 TestNG 时,setUp 方法相对复杂。它可能会破坏多个点,我想将其拆分为单独的步骤。 理想情况下它看起来像这样: // Does some DB stuff
有人以前见过这个并且知道它的含义吗? 14:13:43 PhantomJS 1.9.8 (Linux) ERROR 14:13:43 Error: Cannot have setup/teardo
是否可以以编程方式创建/拆除 Spring 集成 channel ,而不是在 Spring 配置中静态声明它们? 我的情况是这样的: 我有一个需要推送通知的 web 应用程序,所以我使用了长轮询。那些
setUp 和 teardown(前置条件和后置条件设置)是否由名称 setUp() 和 teardown()< 标识 或 @Before 和 @After? 换句话说,在 JUnit 中是否可以有一
我目前正在重构代码,让原始指针使用智能指针,同时也在测试这个类,但遇到智能指针被过早删除的问题 这是一个例子: class SomeObjectType { public: void init(
使用 Apple 的 EADemo 作为基础,我试图了解背景对 EAAccessories 的影响。 当我收到 connectNotification 时,我会获取附件、检查协议(protocol)并
所以,我知道 gtest 有“字面上”的固定装置,但是构造函数/析构函数和设置/拆卸函数将在每个测试之后而不是在整个测试集之后执行夹具。 我能想到解决这个问题的方法,但是是否有一些我没有找到的内置支持
这个问题是关于单元测试框架的xUnit.net . 我需要在执行任何测试之前运行一些代码,并在所有测试完成后运行一些代码。我认为应该有某种属性或标记接口(interface)来指示全局初始化和终止代码
问题 我设置了一个简单的测试,比如 import pytest import pathlib @pytest.fixture def some_resource(): testdir = pa
我有一堆端到端的仪器测试(依赖于 Espresso)启动我们的启动器 Activity ,然后在我们的应用程序中导航(最终创建几个 Activity )。在每个 测试结束时,我们的@After 注释拆
我在 test_helper 中有以下代码 require "minitest/spec" require "minitest/autorun" require "database_cleaner"
我们的 pytest 环境有很多固定装置(主要是 scope='function' 和 scope='module'),它们正在执行以下形式的操作: @pytest.yield_fixture(sco
Pytest has 设置和拆卸 模块、类、方法的 Hook 。 我想在设置中(在测试 session 开始之前)创建我的自定义测试环境,并在所有测试完成后进行清理。换句话说,我如何使用像 setup
我正在尝试使用dbunit来测试系统的数据库。由于可以使用相同的数据集测试多个测试用例,因此我想为所有测试用例初始化一次数据集。但我也使用spring的@AutoWire来初始化那些数据库连接参数。
我有不同的测试文件夹(包)。我想为特定包(文件夹)设置和拆卸一些数据。 问题是 set_up() 在运行该文件夹的测试用例之前执行,但在运行所有测试用例之后,tear_down 没有执行。它也在运行其
我正在使用 Specs2 和使用 Scala 2.10.2(运行 Java 1.7.0_51)构建的 play 2.2.1。我一直在阅读有关如何使用 Specs2 进行设置/拆卸的信息。我已经看到使用
我是一名优秀的程序员,十分优秀!