問題タブ [hamcrest]
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.
iphone - Hamcrest アサーションを使用した Xcode 3.2.4、iOS 4.1 SDK での単体テストの失敗
iOS 4.1 SDK を使用して Xcode 3.2.4 にアップグレードしましたが、テストが失敗しています。
まずこれが原因で、コマンド出力の処理中に内部エラーが発生しました: -[XCBuildLogCommandInvocationSectionRecorder endMarker]: unrecognized selector sent to instance 0x201aa7200その後、Apple フォーラム (http://gist.github.com/586296) によって提案されたパッチを使用しました。最初の Hamcrest アサーションでテストが失敗します。
ログは次のとおりです。
前にそれを見た人はいますか?3.1.3 SDK で完全に動作していました。
java - Hamcrestの「describeMismatch」機能を使用するJUnit assertThatのバージョンはありますか?
私が試した JUnit のすべてのバージョン (4.8.1 まで) で、assertThat が失敗すると、次のようなエラー メッセージが表示されます。
expected: [describeTo]
got: [オブジェクトの文字列表現]
つまり、Matcher からの不一致の説明ではなく、オブジェクトの toString() が表示されます。org.hamcrest.MatcherAssert.assertThat の assertThat を使用すると、「describeMismatch」が呼び出され、より役立つエラー メッセージが表示されます。
Junit の使い方が間違っているのでしょうか、それとも現在、私がやりたいことができる JUnit のバージョンがありませんか? それでは、ほとんどの人は Hamcrest assertThat を使用しますか?
eclipse - NoSuchMethodError: Eclipse でテストを実行すると、org.hamcrest.Matchers.hasXPath が発生する
hamcrest ライブラリ (1.2) を使用する単体テストがあります。hasXPath マッチャーに名前空間コンテキストを含めたいので、1.2 であることが重要です。これは Maven プロジェクトであり、すべての依存関係が正しく機能するように設定されています。(私は junit ではなく junit-dep のみを使用していることを確認します - 面倒ですが、依存関係ツリーが正しいことを確認しました。) Maven ではすべて正常に動作します。ただし、Eclipse (3.6) で同じテストを実行すると、次のエラーが発生します。
プロジェクトのEclipseビルドパス構成を再確認しましたが、junit-depもあり、junitとhamcrest 1.2もありません。さらに、コンパイル エラーがないため、これは単なる実行時の問題です。日食には、ここで干渉している独自のランタイムがありますか? どうすればこれを回避できますか?
例外の原因となっているコードは次のとおりです。
Web サービス コード、完全なクラス コード、MetaNamespaceContext などの依存クラスなど、大量のコンテキストがないと役立つかどうかはわかりませんがmvn clean install
、コマンド ラインから、これは eclipse の構成の問題であり、実行中の特定のコードとはほとんど関係がありません。(もちろん、このhasXPath(String, NamespaceContext, Matcher)
メソッドは 1.2 でのみ使用可能であり、単にhasXPath(String, Matcher)
.
java - Groovy の JMock で Hamcrest マッチャーを使用する
私はGroovy(およびJMockも同様)を初めて使用し、モックされているメソッドのパラメーターでマッチャーを使用する期待を構築するのに苦労しています。私がこのようなことをしようとすると:
期待値を構築するときに次のエラーが発生します。
aNonNull が返さMatcher<T>
れ (org.hamcrest.core.IsNot implements Matcher<T>
)、Matcher を取る Expectations.with メソッドがあるため、Groovy が指定されたインターフェイスではなく具象クラスを取る with のバージョンを見つけようとしている理由がわかりません非ヌルによって。また、aNonNull の戻り値を両方の Matcher にキャストMatcher<T>
し、エラーを変更することも試みました。Groovy を混乱させるジェネリクスに関する何かがあるかどうか、または他に何を確認する必要があるかはわかりません。
java - Mavenプロジェクトからテストユーティリティを公開する
いくつかのインターフェースを実装することで拡張できるライブラリをMavenで作成しました。デフォルトの実装をテストするために、現在に住んでいるいくつかのハムクレストマッチャーを作成しましたsrc/test/java
。
ただし、カスタマイズをテストしたい場合は、ライブラリのユーザーにとって役立つと思います。
では、どうすればそれらを利用できるようにできますか?それらをに移動するにsrc/main
は、hamcrestを実行時の依存関係にする必要があり、私はそれを望んでいません。
java - Java Hamcrest : コレクションには、タイプのアイテムが含まれます
List<Achievement>
type のメンバーが含まれていると断言したいと思いTestAchievement
ます。
ここに私の主張があります:
これはコンパイルされず、エラーが報告されます:
Assert 型のメソッド assertThat(T, Matcher) は、引数 (List, Matcher<Iterable<TestAchievement>>) には適用されません。
Hamcrest を使用したこのタイプのアサーションの正しい構文は何ですか?
eclipse - Hamcrest&JUnit&Eclipse:エラーメッセージが間違った方法で
私は現在、EclipseHelios上でJUnit4上でHamcrest1.3RCを実行していますが、Hamcrestについて気になることが1つだけあります。それは、エラーメッセージが間違った方法であるということです。「Expected:<expectedvalue>、but was:<actualvalue>」の代わりに、「Expected:<actualvalue>、but was:<expectedvalue>」を取得します。
つまり、それは大したことではありませんが、来てください^^他のすべての方法でそのような素晴らしい仕事をしているHamcrest開発者の誰もこれに気づいていませんか?それとも、これは私の環境に固有のエラーですか?あなたもそれを持っているか、持っていないか、それ以上かどうか教えてください、あなたはこのバグを修正する方法を知っています。
Hamcrest 1.2と1.3RCの両方で試しましたが、どちらも正しくありませんでした。あらゆる種類のヒントのためのTIA。
問題を説明するためのいくつかのコード(名前は部分的にドイツ語です、私はそれが問題ではないことを願っています):
[EDIT2]Hamcrestを使用することで問題は解決しました。これからはassertEquals(...、...)を避けて、assertThat(... is(...))を優先します。
java - JUnitとHamcrestを一緒に使用するにはどうすればよいですか?
JUnit4.8がHamcrestマッチャーとどのように連携するか理解できません。junit-4.8.jar
の中にいくつかのマッチャーが定義されていorg.hamcrest.CoreMatchers
ます。同時に、には他のマッチャーhamcrest-all-1.1.jar
がいくつかありorg.hamcrest.Matchers
ます。それで、どこに行くのですか?プロジェクトにhamcrestJARを明示的に含め、JUnitによって提供されるマッチャーを無視しますか?
特に、私はempty()
マッチャーに興味があり、これらの瓶のいずれにもそれを見つけることができません。他に何か必要ですか?:)
そして哲学的な質問:なぜJUnitはorg.hamcrest
、オリジナルのhamcrestライブラリを使用するように勧めるのではなく、パッケージを独自のディストリビューションに含めたのでしょうか。
java - オブジェクトの異なるプロパティを同時に照合するための org.hamcrest.Matchers
org.hamcrest.Matchers によってオブジェクトの 2 つの異なるプロパティを一致させようとしています。ここにあります:
指定された id と等しい user-id と、to-date 以下で from-date 以上の日付を持つ LeaveApply オブジェクトのリストを提供します。それは働いています。異なるプロパティ フィールドを一致させる正しい方法を知りたいですか?