問題タブ [spock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
grails - Grails 1.3.7の機能テストにGeb、Selenium、Spockを使用した場合のエラー
Grails 1.3.7、Geb、Spock、およびSeleniumを使用して機能テストを実行しようとしています。これが私のBuildConfig.groovyファイルです:
テストコードは次のようになります。
LoginPage.groovy:
GeneralSpec.groovy:
ここで、FirefoxDriverを使用してこのテストを実行しようとすると、次のエラーが発生します。
私はこの簡単なテストを1週間実行しようとしましたが、これらすべてのバージョンと例外は私を非常に混乱させます。誰か助けていただければ幸いです。
ありがとう
email - Spockでドメイン固有のクロージャをモックする方法
grailsEメールプラグインを使用してEメールを送信しているGrailsコントローラーをテストしたいと思います。sendMail
インタラクションが機能するためにクロージャーをモックする方法が正確にわかりません。これが私の最新バージョンのテストコードです。
コントローラのコードは、期待するもののようになります。例:
このテストを実行すると、multipart
インタラクションの呼び出しが1ではなく0になります。given:
ブロックの2行目は疑わしいようですが、テストのClosure
代わりにモックを実行しようとするとorg.springframework.mail.MailMessage
クラッシュします。また、コントローラー自体が期待どおりに機能することにも言及する必要があります(最初に単体テストを理解するのが待ちきれませんでした)。
編集済み
ああ、数時間後に新鮮な心でコードを見ると、上記のコードが機能しない理由がわかります。キャッチmultipart
やその他のDSL呼び出しを行うには、sendMailメソッドではなく、クロージャー自体をモックする必要があります(クロージャーはコントローラー自体の内部で定義されているため、これはできません)。私がおそらくできることは、メソッドの引数をチェックして、sendMail
必要なものがすべて渡されたことを確認することです。
unit-testing - Spock/Build-Test-Data を使用して、「where」を含むメソッドまたは「namedquery」を使用するメソッドを単体テストする方法は?
いくつかの組み合わせを試しましたが、Grails の「where」クエリまたは「named-query」に依存するメソッドをテストできません。
ちなみに、Grails 2.0.3 を使用しています。
コード イン サービス
テスト
「where」クエリまたは「named-queries」の単体テストを成功させるには何が欠けていますか?
私が得ているエラーは、関連するプロパティに関連しているようです。groovy.lang.MissingMethodException: メソッドの署名がありません: grails.gorm.CriteriaBuilder.cities() は引数の型に適用されます:
名前だけを照会すると、うまくいくようです.. :(
java - SpockでHttpServletRequestをモックする方法
Spockで単体テストを行い、HttpServletRequestの呼び出しを確認するServletFilterがあります。
次のコードはスローします
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/http/Cookie
JavaEE 5 API(したがってサーブレットAPI)はクラスパス上にあります。Spockのバージョンは0.6-groovy-1.8です。
どうすればそれを正しく行うことができますか?Mockitoで動作しますが、Spockのモックの素晴らしさを失います。
編集:サーブレット用のGrailsとSpringに組み込まれているモック機能について知っていますが、Spockモックでそれを行う方法があるかどうかを知りたいだけです。そうでなければ、モックのセットアップテクニックが混在しているでしょう...
grails - IntelliJでEasybまたはSpockを使用して、Grailsプロジェクトで「少しテストし、少しコーディングする」
私の元の問題は、この投稿で完全に説明されています: TDD に従いたい:
- 小さなテストを書く
- 失敗するのを見て
- 成功するのに十分なコードを書く
- それが成功するのを見てください
- 繰り返す
IntelliJ で Grails プロジェクトに取り組んでいます。通常の JUnit テストを作成するだけなら、上記の投稿ですべて解決します。
- /test/unit に移動
- 「class Xyz extends GroovyTestCase」クラスにいくつかのテスト コードを配置します。
- Shift F10 を押す
- JUnit レポートが 1 ~ 2 秒以内にポップアップ表示される
問題は、Easyb や Spock などの非常に優れた「英語で説明」するテスト セットアップの 1 つを使用したいということです。
私は何をしますか?Grails が作成してくれる自動生成された Test クラスから始めて、そこに Spock の要素を詰め込むのは魔法のようです。明らかに、「extends」を 2 回使用することはできません。これは私がやろうとしていることの要点を示していますか?
unit-testing - MockitoのSpockに対するAnswerのようなものですか?
Mockitoには、モックとの相互作用からプログラムで回答するための優れた方法があります。たとえば、メソッド呼び出しに渡されたパラメータを返すようにモックをプログラムできます。
スポックで同じことをする方法はありますか?
unit-testing - シーケンスを含むドメインオブジェクトを使用するアーティファクトを単体テストするにはどうすればよいですか?
シーケンスを含むドメインオブジェクトで動作するサービスのテストを(Grails 2.0.4 / Spock / Build-Test-Dataプラグインを使用して)作成しています。課題は、シーケンスが単体テスト内で機能していないことです。そのため、これにどのように取り組むか疑問に思っていますか?
例:ドメインオブジェクト
例:テスト
ドメインオブジェクト内のtransactionIdはnull許容でない可能性があるため、テストは単に失敗します。ドメインクラスのシーケンスは期待どおりに機能せず、nullを返します。私は何かが足りないのですか?または、単体テストで期待どおりにシーケンスを機能させる方法は他にありますか?
前もって感謝します。
scala - Akka の ActorRef の Spock モック
クラスの Spock テストを作成しようとしましたが、アクターにメッセージを送信することを確認する必要があります (たとえばstatActor
)。Akka には統合テスト用の特別なライブラリがあることは知っていますが、非常に単純なテストには多すぎるようです。だから、私は試しました:
ターゲット メソッドは次のようになります。
Spock はメソッドでモックを作成すると思いましたtell
。しかし、このテストを実行した後、私は得ています:
なぜ実際のActorRef
実装を呼び出しているのですか? Scala との何らかの非互換性はありますか? そのようなクラスのモックを作成する方法はありますか?
grails - Grails 1.3.8 で Spock フレームワークが他のプラグインと競合する
Spock on Grails 1.3.8 アプリケーションをインストールしました。test-app の実行後に失敗します。他のプラグインと競合しているようですが、わかりません。20以上のプラグインがインストールされています。
エラーは次のとおりです。
これが私のbuildConfigです:
プラグインをインストールしなくても問題なくスポック テストを実行できます。プラグインの 1 つに固有のものなのか、Spock に関するものなのか、あるいは私が間違っていることなのかさえわかりません。
追加情報: 何らかの理由で、1 つまたは複数のプラグインが Grails のダウンロードを妨げていることがわかりました。
spock-grails-support:0.6-groovy-1.7
私のプラグインでは、Grails は 1.3.8 に必要な 1.7 ではなく、spock-grails-support:0.6-groovy-1.8 のみをダウンロードします。そのため、Grails が依存関係をダウンロードするのを妨げている原因がわかりません。
アドバイスをありがとう
grails - Spock テストを繰り返すにはどうすればよいですか?
here で 説明されているように、@Repeat
注釈は現在サポートされていません。スポックテストをn回繰り返しとしてマークするにはどうすればよいですか?
スポックテストがあるとします:
n回繰り返すようにマークするにはどうすればよいですか?