簡體   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