3
jms-grailsプラグインが提供するsendJMSMessageメソッドを使用しているサービスがあります。 単体テストを書いていますが、このメソッドを "模擬する"方法がわからないので、何もしません。 ヒント?プラグインのメソッドを使っているgrailsサービスの単体テストテストはどうすればできますか?
jms-grailsプラグインが提供するsendJMSMessageメソッドを使用しているサービスがあります。 単体テストを書いていますが、このメソッドを "模擬する"方法がわからないので、何もしません。 ヒント?プラグインのメソッドを使っているgrailsサービスの単体テストテストはどうすればできますか?
メソッドをメタクラスして、必要なものを返すようにすることができます。
それは本当にあなたがアップ有線していることを保証するものではありませんので、私は特に応答がnull
であることを主張し好きではないので、私は、私はmetaClassedメソッドから
null
を返すてるとき
wasCalled
旗を持ちたい
@Test
void pluginCode() {
def myService = new MyService()
def wasCalled = false
myService.metaClass.sendJMSMessage = {String message ->
//I like to have an assert in here to test what's being passed in so I can ensure wiring is correct
wasCalled = true
null //this is what the method will now return
}
def results = myService.myServiceMethodThatCallsPlugin()
assert wasCalled
}
正しくwasCalled
フラグがなければ、あなたは何かユニークなものを返すでしょう。
上記の例では、1つの文字列パラメータを使用しましたが、実際に何が起こるかに応じて任意の数/タイプのパラメータをmetaClass
から取得できます。
こんにちはJarred、残念ながら、このメソッドはサービスではありません。それはプラグインによって私のサービスで「公開された」ものです。私はプラグインの作成を試みたことがないので、どのように動作するかは完全にはわかりませんが、単にこのメソッドを「どこからでも」呼び出すことができます。 – Krystian
それからそれらはおそらくすべてのサービス(可能なコントローラとドメインオブジェクト)にメタクラス化しています。あなたはそれをあなたのサービスに単にメタクラスすることができます。私は私の答えを更新します。 –