繁体   English   中英

避免在 Spock 中对原始类型使用通配符的编译器警告

[英]Avoid compiler warning using wildcard for primitive types in Spock

我正在使用 Spock 框架来测试我的 Java 应用程序。 每当我尝试使用原始类型的通配符来检测Mock时,编译器都会警告我。

例如(简单的例子):

service.add(_, _) >> 42

上述两个参数都是原始int 编译器给了我以下警告:

警告:(34, 30) 'Service' 中的 'add' 不能应用于 '(java.lang.Object, java.lang.Object)'

在运行时,测试通过,没有任何问题。 但是,如果我尝试指定通配符的类型,则测试失败。

如何避免上述警告信息?

您应该使用类型包装器而不是原语。

请参阅github.com/jeffbrown/riccardocardin上的项目。

lib/src/test/groovy/riccardocardin/LibraryTest.groovy#L9有效。

1 * add(_ as Integer, _ as Integer) >>  2112

github.com/spockframework/spock/issues/669解释了为什么这不是一个错误。

暂无
暂无

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

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