0

我有一个这样的测试:

@ContextConfiguration(locations = { "file:war/WEB-INF/application-context.xml" })
public class ServiceImplTest extends AbstractTestNGSpringContextTests
{
    @Autowired
    private Service service;

    @Rollback(false)
    @Test
    public void testCreate()
    {
           .....
              //save an entity to table_A
      service.save(a);
    }
}

table_A 将被清理;如何停止这种清洁动作?

4

1 回答 1

0

尝试将您的测试类标记为事务性的,这将要求您也使用弹簧测试类。

@RunWith(SpringJUnit4ClassRunner.class),
@ContextConfiguration(locations = { "file:war/WEB-INF/application-context.xml" })
@Transactional
public class ServiceImplTest extends AbstractTestNGSpringContextTests
{
    @Autowired
    private Service service;

    @Test
    @Rollback(false)
    public void testCreate()
    {
           .....
              //save an entity to table_A
      service.save(a);
    }
}

您也可以尝试使用@TransactionConfiguration,其中 txMgr 是您的事务管理器的名称。:

@RunWith(SpringJUnit4ClassRunner.class),
@ContextConfiguration(locations = { "file:war/WEB-INF/application-context.xml" })
@TransactionConfiguration(transactionManager="txMgr", defaultRollback=false)
public class ServiceImplTest extends AbstractTestNGSpringContextTests
{
  ....
}

测试中的回滚功能取决于您如何管理事务,如果没有这些信息,很难给您一个可靠的答案。

于 2012-11-01T10:29:48.140 回答