問題タブ [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.
unit-testing - Grails の mockDomain() メソッドの制限は何ですか?
Grails 1.3.5 で Service の Spock Spec (単体テスト) を作成していますが、次のエラーが発生しました。
以前はこのテストに合格していましたが、メソッドに結果の並べ替えを含めるようにサービスを変更したときにエラーが発生しましたgetThings()
。
これは、アプリケーションの実行時にはまだ機能しているように見えるので、mockDomain()
.
mockDomain()
だから私の質問は、実行時に実際のドメインクラスを使用するのではなく、ドメインクラスに追加されるメソッドの違いですか? もしそうなら、それらは何ですか?
unit-testing - 基になるコントローラーがSpocksのMock()を使用してモックされているのに、このメソッドがnullを返すのはなぜですか?
EventControllerにあるコメントアウトされたメソッドに注意してください
- スニペットが「 nullオブジェクトのプロパティ'メッセージ'を取得できません」を引き起こすのはなぜですか?
- スニペットを正しく設定するにはどうすればよいですか?
- 一般に、Spockを使用する場合、 mockTagLib、mockController、mockLogging GrailsUnitTestCase関数のいずれかが必要ですか?
unit-testing - カバレッジプラグイン(内部のCobertura)はSpockの仕様について報告しますか?
私はでgrails test-app unit:spock -coverage
説明されているテストを実行しました
「基盤となるコントローラーがSpocksのMock()を使用してモックされているのに、このメソッドがnullを返すのはなぜですか?」
現在、カバレッジレポートは、メソッドcreateCrumbがテストされていないと「考えています」。
unit-testing - domainInstance.validate() の戻り値をモックする
コントローラーメソッドをテストするスポックユニットテストを書いています。
テスト中のコントローラー アクションは、新しいドメイン インスタンス オブジェクトをインスタンス化し、保存する前に検証を呼び出します。domainInstance.validate() への呼び出しをモックする方法はありますか? または、これを実現するために、このインスタンス化と保存をサービス メソッドの背後に隠す必要がありますか?
コントローラーの単体テストのコンテキスト内では、ドメイン オブジェクトの制約が関与してはならないため、このようにします。私はそれらを他の場所でテストします (明らかに MyDomainClassTests で)。それらを考慮したい場合、私のテストは統合テストになります。
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に変更されました
- この問題はどこから発生しますか?
- どうすれば解決できますか?
- [オプション]誰かがタグ「スポック」を作成できますか?
EventControllerSpec.groovyから
EventController.groovyから
java - Spock を使用した Groovy のモック ファイル ファクトリ
File Factory を使用して File オブジェクトの構築を模擬することにしました。
そしてテスト:
問題は、NullPointerException で失敗することです!?
私が得たデバッガを使用して:
そして、確認されたように、「現在のファイル」は実際にはテストで指定されたモック ファイルです。「currentObject.objectContent」は null ではなく、「currentFile」は null ではありません。
突然、次のメソッドの BaseSpecRunner.java にジャンプします。
「InvocationTargetException は、呼び出されたメソッドまたはコンストラクターによってスローされた例外をラップするチェック済み例外です。」. 偉大な。
何か案は?
ありがとう。
unit-testing - 基準クエリを利用するGrailsサービスをテストする方法(spockを使用)?
簡単なサービス メソッドをテストしようとしています。そのメソッドは主に、1つの結果を返すかどうかをテストしたい基準クエリの結果を返すだけです(クエリの対象に応じて)。
問題は、対応するテストを正しく修正する方法がわからないことです。私はスポックを介してそれを達成しようとしていますが、他のテスト方法でも同じことをしても失敗します。
目の前のタスクで機能するようにテストを修正する方法を教えてもらえますか?
(ところで、可能であれば単体テストを行いたいと思います。)
EventService メソッド
スポック仕様
エラー
grails - スポック対イージーブ
easyb と spock を簡単に見てみましたが、どちらも似ているように見えますが、 spock はより技術志向のようですが、いつ使用するかに関するベストプラクティスはありますか?
たとえば、新しい grails プロジェクトではどちらを優先すべきでしょうか? 自動化されたテストを作成するだけでよい従来の Java プロジェクトでは、どちらを優先する必要がありますか? 1つは他のものよりも統合テストに適していますか?
そのようなもの..
ありがとうスダルシャン
junit - gradle で実行する特定のテストの選択
私は厄介な失敗したテスト実行を修正しようとしていますが、残念ながら、私は gradle に非常に慣れていません。現在、testng と junit がありますが、いくつかのスポック テストもミックスに追加したいと考えています。「gradle test」と入力したときに実行するテストをgradleがどのように決定するかはよくわかりません。testng および/または junit テストが実行されないようにするにはどうすればよいですか? gradle でスポック テストの実行を開始するにはどうすればよいですか?
maven-2 - Maven 2の場合にのみMavenプロジェクトにプラグインをダウンロードさせるために、POMでMavenバージョンをチェックすることは可能ですか?
問題は、Maven 3がネイティブのspock-mavenプラグインをサポートしているように見えることですが、maven2にはspock-mavenプラグインが必要です。ただし、Maven 3では、maven-spockプラグインが含まれていると、プロジェクトのビルドが失敗します。
私のチームでは、まだMaven 3に切り替えていない人がいるため、両方のMavenバージョンでビルドするにはこのPOMが必要です。