[英]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.