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 に答える