有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

面向可完成未来的java Junit。runAsync()

我想感谢你们每一个人与我们分享你们的知识和时间。在这里,我很想知道我们如何为在CompletableFuture中编写的业务逻辑编写junit测试用例。runAsync() e、 g

public class Loan{
public Transaction writeIntoCassandra(Transaction transaction){
   private startTime = System.currentTimeMillis();
   CompletableFuture.runAsync(()-> {
         try{
                writeIntoCassandraTable(transaction);
            }
         catch(JsonConversionException e){
         }         
      });
   CompletableFuture.runAsync(()-> {
         try{
                writeIntoCassandraTable2(transaction);
            }
         catch(JsonConversionException e){
         }         ​
     ​});
return transaction;
}
}

我在下面为上述实现编写junit测试用例

@InjectMocks
private Loan loan;

    public void writeIntoCassendraTest(){
  String jsonTransaction = "";
  ObjectMapper objectMapper = new ObjectMapper();
  Transaction transaction = objectMapper.readValue(jsonTransaction, Transaction.class);
  loan.writeIntoCassendra(transaction);
  //assertThat();
}

在这里,当我运行junits时,它不会执行在“CompletableFuture.runAsync(()->;{”之后编写的代码,即私有方法writeIntoCassandraTable(transaction)和writeIntoCassandraTable 2(transaction)不会被执行。我用try块保留了断点,但此时控制并没有停止。 这导致代码覆盖率低。帮助我理解为什么它没有被执行,以及如何修复它。如果您需要更清晰或详细的信息,请告诉我


共 (0) 个答案