public void getCouponAndNotifyAsync(String countryId, String channelId,
String storeNumber, String clientId, NotificationRequest notificationRequest)
throws FirestoreException, TurneroServiceException {
CompletableFuture.runAsync(() -> getCouponAndNotify(countryId, channelId,
storeNumber, clientId, notificationRequest));
}
@Test
public void getCouponAndNotifyAsync() throws Exception {
//doNothing().when(turneroService).getCouponAndNotify(COUNTRYID, CHANNELID, STORENUMBER, CLIENTID, new NotificationRequest("ext_rborse@falabella.cl", "all"));
CompletableFuture<Void> runAsync = CompletableFuture
.runAsync(() -> doNothing().when(turneroService).getCouponAndNotify(COUNTRYID, CHANNELID, STORENUMBER, CLIENTID, new NotificationRequest("ext_rborse@falabella.cl", "all")));
assertTrue(runAsync.isDone());
}
已更新测试用例,但仍不工作。
@Test
public void getCouponAndNotifyAsync() throws Exception {
//doNothing().when(turneroService).getCouponAndNotify(COUNTRYID, CHANNELID, STORENUMBER, CLIENTID, new NotificationRequest("ext_rborse@falabella.cl", "all"));
CompletableFuture<Void> runAsync = CompletableFuture
.runAsync(() -> doNothing().when(turneroService).getCouponAndNotify(COUNTRYID, CHANNELID, STORENUMBER, CLIENTID, new NotificationRequest("ext_rborse@falabella.cl", "all")));
assertTrue(ForkJoinPool.commonPool().awaitQuiescence(5, TimeUnit.SECONDS));
assertTrue(runAsync.isDone());
}
我假设您正在其他地方测试getCouponandNotify()
,这样您就不必担心它会引发异常。
您将遇到的是getCouponandNotifyAsync()
和getCouponandNotify()
返回之间的竞争条件。对此有几种解决方案:
由于您使用的是通用的forkjoinpool
,请执行以下操作
assertTrue(ForkJoinPool.commonPool().awaitQuiescence(5, TimeUnit.Seconds));
我有以下代码 我对嘲笑不熟悉。我有以下疑问。我正在尝试测试公共方法。 我是否可以断言私有变量workDone的值? 是否可以验证超类中的方法调用? 如何在方法中模拟私有方法调用?
我正在使用powermock。我面临以下场景的问题。 更新时间: 我的问题不同。在另一个链接中给出的示例中,私有方法返回了一些值。在我的例子中,这两种方法都返回Void。 面临为myPublicMethod编写测试用例以模拟同一类中的私有方法的问题。 我想模拟myPrivateMethod方法,因为它不应该被调用,但是测试用例应该包括myPublicMethod方法。这两种方法都是无效的。 我不能
问题内容: 这可能吗?我尝试过,但EasyMock抱怨时间必须> = 1 问题答案: 我设法提出了一个解决方案:
我正在用Mockito为一个项目设置jUnit测试。在被测系统(DrawingService)中调用方法时遇到问题。模拟包括图形和IDrawingRepository。 我不熟悉TDD、单元测试和一般的模拟,所以我可能犯了一些noob错误?任何帮助都将不胜感激。 以下是测试课程: 以下是正在测试的系统:
我有一个返回类型为的方法。它还可以抛出许多异常,所以我想测试一下那些被抛出的异常。所有尝试都失败了,原因相同: 类型Stubber中的(T)不适用于参数(void)时的方法 有什么想法,我可以如何获得方法抛出一个指定的异常?
我遇到了问题,有两个不实的方法。在我已经按照这个答案嘲笑了一个数组列表,该数组列表将在for循环中循环,没有嘲笑列表,但传递了一个真实的列表并添加了被嘲笑的对象。 Mockito在这条线上给我一个InvalidUseOfMatchersException 验证(effectList.get(Mockito.anyInt())。执行(playerHandler) 关于这个例外,有很多关于SO的问题,