0
私はここで、次のGroovyクラスにテスト中のクラスと外部ユーティリティクラスとの間の相互作用をテストするために、どのようにしてspockテストを書くのですか?
import Utils
class HelpController {
def search = {
Utils.someFunction()
}
}
を持っているが、私のスポックグルーヴィーなスペックです:
import Utils
import grails.test.mixin.*
import HelpController
@TestMixin(GrailsUnitTestMixin)
@TestFor(HelpController)
class HelpControllerSpec extends Specification {
void "should call someFunction method in Utils class"() {
when:
helpController.search()
then:
1 * Utils.someFunction()
}
}
は誤りで、テスト結果の実行:
too few invocations for Utils.someFunction() (0 invocations)
utilsのJavaクラスです。私がspockユニットテストを実行すると、Utils.someFunction()が呼び出されたので、何が起こっているのか少し混乱しているようです。誰も助言することはできますか?前もって感謝します!
ニースのメタクラスを洗浄するためのアノテーション
@ConfineMetaClassChanges
を使用しますが、Utils.metaClass変更は@ConfineMetaClassChangesに包含される範囲内で行ってはなりませんか? – railsdogあなたは正しいです!ありがとうございました – quindimildev
提案ありがとう!しかし、私は "いいえそのようなプロパティ:Utilsのためのメタクラス"エラーが表示されます。 UtilsでExpandoを拡張しようとしましたが、同じエラーが発生しています... UtilsはPOJOです –