繁体   English   中英

JUNIT5 中的 AssertThrows

[英]AssertThrows in JUNIT5

我正在尝试在junit5学习assertThrows ,它将Executable作为第二个参数,它有一个void execute()方法。 但是,在下面的示例中,在相同的示例中,我们向它传递了一个LAMBDA ,该LAMBDA返回一个 double 的方法double divide(int a , int b) 现在,如果下面的 lambda 没有与Excecutableexecute方法相同的签名,那么如何传递它。 它应该给出compile error吗?

assertThrows(ArithmeticException.class,() -> m.divide(1, 0),"Failed");
() -> m.divide(1, 0)

被有效地对待

new Executable() {
  @Override public void execute() {
    m.divide(1, 0);
  }
}

可以将 lambda 视为具有单个抽象方法的任何接口/类的实例。

Lambda 始终是多表达式,这意味着它们的确切类型取决于使用它们的上下文。

不存在兼容性问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM