0

我有一段代码要进行单元测试。

this.vertx.eventBus().consumer(VERTICLE_ID).toObservable()
        .subscribe(msg -> doSomethingCool());

和我的消费者方法:

 private void doSomethingCool(){ 
  // Some cool stuff.
 }

现在我想在不使用 powermockito 的情况下对 doSomethingCool() 进行单元测试(我想要代码覆盖率)并且我不想让我的方法可见(公开)。我怎样才能做到这一点?vertx中的任何钩子可以做到这一点吗?

4

1 回答 1

0

如果对测试的目的一无所知,实际上很难说应该如何编写测试doSomethingCool

  • 它是否返回一个值?(即通过 msg.reply())
  • 它会修改 Verticle 的状态吗?还是全局状态?
  • 它会打下游电话吗?
  • 一旦完成了它所做的一切,您的方法是否会调用处理程序?

单元测试应该验证可观察的结果。所以编写你的单元测试来验证这些结果之一。如果调用了处理程序,您可以使用 vertxunit TestContext 并倒计时异步。

...并远离 Powermockito。

于 2018-03-09T13:29:57.957 回答