問題タブ [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.

0 投票する
2 に答える
5351 参照

unit-testing - Grails の mockDomain() メソッドの制限は何ですか?

Grails 1.3.5 で Service の Spock Spec (単体テスト) を作成していますが、次のエラーが発生しました。

以前はこのテストに合格していましたが、メソッドに結果の並べ替えを含めるようにサービスを変更したときにエラーが発生しましたgetThings()

これは、アプリケーションの実行時にはまだ機能しているように見えるので、mockDomain().


mockDomain()だから私の質問は、実行時に実際のドメインクラスを使用するのではなく、ドメインクラスに追加されるメソッドの違いですか? もしそうなら、それらは何ですか?

0 投票する
1 に答える
586 参照

unit-testing - 基になるコントローラーがSpocksのMock()を使用してモックされているのに、このメソッドがnullを返すのはなぜですか?

EventControllerにあるコメントアウトされたメソッドに注意してください

  1. スニペットが「 nullオブジェクトのプロパティ'メッセージ'を取得できません」を引き起こすのはなぜですか?
  2. スニペットを正しく設定するにはどうすればよいですか?
  3. 一般に、Spockを使用する場合、 mockTagLibmockControllermockLogging GrailsUnitTestCase関数のいずれかが必要ですか?
0 投票する
1 に答える
841 参照

unit-testing - カバレッジプラグイン(内部のCobertura)はSpockの仕様について報告しますか?

私はでgrails test-app unit:spock -coverage説明されているテストを実行しました

基盤となるコントローラーがSpocksのMock()を使用してモックされているのに、このメソッドがnullを返すのはなぜですか?

現在、カバレッジレポートは、メソッドcreateCrumbがテストされていないと「考えています」。

0 投票する
2 に答える
242 参照

unit-testing - domainInstance.validate() の戻り値をモックする

コントローラーメソッドをテストするスポックユニットテストを書いています。

テスト中のコントローラー アクションは、新しいドメイン インスタンス オブジェクトをインスタンス化し、保存する前に検証を呼び出します。domainInstance.validate() への呼び出しをモックする方法はありますか? または、これを実現するために、このインスタンス化と保存をサービス メソッドの背後に隠す必要がありますか?

コントローラーの単体テストのコンテキスト内では、ドメイン オブジェクトの制約が関与してはならないため、このようにします。私はそれらを他の場所でテストします (明らかに MyDomainClassTests で)。それらを考慮したい場合、私のテストは統合テストになります。

0 投票する
1 に答える
1323 参照

hibernate - GrailsのこのSpock仕様が、「projectname.Eventのインスタンスの識別子を1から2に変更した」という結果になるのはなぜですか?

実行test-app integration:spockすると、次のエラーが発生します。

projectname.Eventのインスタンスの識別子が1から2に変更されました。ネストされた例外は org.hibernate.HibernateExceptionです:projectname.Eventのインスタンスの識別子が1から2に変更されました

org.springframework.orm.hibernate3.HibernateSystemException:projectname.Eventのインスタンスの識別子が1から2に変更されました。

ネストされた例外は org.hibernate.HibernateExceptionです:projectname.Eventのインスタンスの識別子がprojectname.EventControllerSpec.saveで1から2に変更されました:event(EventControllerSpec.groovy:74)

原因: org.hibernate.HibernateException:projectname.Eventのインスタンスの識別子が1から2に変更されました

  1. この問題はどこから発生しますか?
  2. どうすれば解決できますか?
  3. [オプション]誰かがタグ「スポック」を作成できますか?

EventControllerSpec.groovyから

EventController.groovyから

0 投票する
2 に答える
4045 参照

java - Spock を使用した Groovy のモック ファイル ファクトリ

File Factory を使用して File オブジェクトの構築を模擬することにしました。

そしてテスト:

問題は、NullPointerException で失敗することです!?

私が得たデバッガを使用して:

そして、確認されたように、「現在のファイル」は実際にはテストで指定されたモック ファイルです。「currentObject.objectContent」は null ではなく、「currentFile」は null ではありません。

突然、次のメソッドの BaseSpecRunner.java にジャンプします。

「InvocationTargetException は、呼び出されたメソッドまたはコンストラクターによってスローされた例外をラップするチェック済み例外です。」. 偉大な。

何か案は?

ありがとう。

0 投票する
2 に答える
9520 参照

unit-testing - 基準クエリを利用するGrailsサービスをテストする方法(spockを使用)?

簡単なサービス メソッドをテストしようとしています。そのメソッドは主に、1つの結果を返すかどうかをテストしたい基準クエリの結果を返すだけです(クエリの対象に応じて)。

問題は、対応するテストを正しく修正する方法がわからないことです。私はスポックを介してそれを達成しようとしていますが、他のテスト方法でも同じことをしても失敗します。

目の前のタスクで機能するようにテストを修正する方法を教えてもらえますか?

(ところで、可能であれば単体テストを行いたいと思います。)

EventService メソッド

スポック仕様

エラー

0 投票する
1 に答える
1527 参照

grails - スポック対イージーブ

easyb と spock を簡単に見てみましたが、どちらも似ているように見えますが、 spock はより技術志向のようですが、いつ使用するかに関するベストプラクティスはありますか?

たとえば、新しい grails プロジェクトではどちらを優先すべきでしょうか? 自動化されたテストを作成するだけでよい従来の Java プロジェクトでは、どちらを優先する必要がありますか? 1つは他のものよりも統合テストに適していますか?

そのようなもの..

ありがとうスダルシャン

0 投票する
3 に答える
17419 参照

junit - gradle で実行する特定のテストの選択

私は厄介な失敗したテスト実行を修正しようとしていますが、残念ながら、私は gradle に非常に慣れていません。現在、testng と junit がありますが、いくつかのスポック テストもミックスに追加したいと考えています。「gradle test」と入力したときに実行するテストをgradleがどのように決定するかはよくわかりません。testng および/または junit テストが実行されないようにするにはどうすればよいですか? gradle でスポック テストの実行を開始するにはどうすればよいですか?

0 投票する
1 に答える
209 参照

maven-2 - Maven 2の場合にのみMavenプロジェクトにプラグインをダウンロードさせるために、POMでMavenバージョンをチェックすることは可能ですか?

問題は、Maven 3がネイティブのspock-mavenプラグインをサポートしているように見えることですが、maven2にはspock-mavenプラグインが必要です。ただし、Maven 3では、maven-spockプラグインが含まれていると、プロジェクトのビルドが失敗します。

私のチームでは、まだMaven 3に切り替えていない人がいるため、両方のMavenバージョンでビルドするにはこのPOMが必要です。