我正在测试我的类,所以我插入了很多数据来测试我的代码。
所以我想在DB中制作一些savepoint and rollback
的机制。
我使用postgresql作为DB服务器。
以下是我的测试代码:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration("file:src/main/webapp/WEB-INF/ls-dispatcher-servlet.xml")
public class AddBindingProcessorTest extends IntegrationTestBase {
@Autowired
private AddBindingProcessor processor;
public AddBindingProcessorTest(){
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
@Test
public void add() throws Exception {
AddBinding command;
command = new AddBinding();
command.setId(50l);
command.setBindingName("bindingtest1");
command.setBindingPrice((double)253);
BindingTypeResponse response = (BindingTypeResponse)processRequest(command);
System.out.println("from addbindingprocessor test "+response.getBindingName());
}
}
这里我通过命令对象设置值并传递给ProcessRequest()
方法,该方法将使用hibernate在DB中存储数据。
我仍然必须在我的assert
方法中写testProcess()
来检查数据是否正确?
所以我的问题是,当我在setUp()
方法中启动此事务时,应创建一个保存点,然后执行testProcess()
方法并assert
检查它们是否正确的数据或者不是然后在tearDown()
方法中我想回滚到setUp()
方法中设置的保存点。
那怎么办?如果任何人都可以指导我将要使用的内容以及如何继续前进,那么我将学习那些东西并自行完成。
我只是想要指导我必须使用的内容和位置? 谢谢大家。
答案 0 :(得分:2)
如果我找对你,你可以使用
@TransactionConfiguration(defaultRollback = true)
@ContextConfiguration注释下面的注释。 这将在每次运行后回滚测试中的更改。
user3145373指出,属性transactionManager =" context bean transaction manager"在@TransactionConfiguration中也需要设置。
它是弹簧测试库的一部分。