java测试dubbo_【Java】对dubbo服务进行单元测试,是不是无法通过Spring-test自动回滚数据...

我现在希望通过单元测试来测试一个dubbo服务中的方法,但是此方法每次都会修改数据库中的数据,单元测试无法重复跑。

所以我想利用Spring-test来进行单元测试的自动回滚。我在Spring+MyBatis+MySQL的环境下,单元测试可以成功进行自动回滚。

可是当我在将修改数据库的方法修改为dubbo服务之后,单元测试就无法自动回滚数据了。

我自己的思考是这样的:

在单元测试执行的时候,单元测试明显花费了很长的时间来进行dubbo服务启动,说明,每次执行单元测试,都重新在ZooKeeper上注册了一个dubbo服务。

如果想要通过Spring-test进行数据的自动回滚,必须还在Spring的控制范围内,而dubbo服务已经脱离了Spring的控制范围,相当于在代码中调用一个远程服务,而远程服务如何修改数据库,是无法回滚的。

如果是这样的,还有没有其他方法能够实现对dubbo服务里的方法的单元测试?

附相关代码:

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = { "classpath:spring/spring-context.xml" })

@Transactional

public class ApplyFacadeTest extends AbstractTransactionalJUnit4SpringContextTests {

@Autowired

private ApplyFacade applyFacade; // dubbo方法

@Test

@Rollback(true)

public void testRevokeApply() {

RevokeApplyReqDTO reqDTO = new RevokeApplyReqDTO();

reqDTO.setApplyId(289L);

reqDTO.setUserId(2059L);

// 调用dubbo方法撤回订单

System.out.println(applyFacade.revokeApply(reqDTO, context));

System.out.println();

}

}

在spring的配置文件中,我建立了一个bean:

由于数据库使用了主从库的配置,dataSource配置的是主库。

回答

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值