問題タブ [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.
hamcrest - hamcrest で not 操作を使用する
私は最近、テストの 1 つで不等式を主張しようとしていました。しかし、ハムクレストで適切なマッチャーを見つけることができませんでした。私が理想的にやりたいことは、次のようなものです。
それを行う方法はありますか?
java - iterable の各要素が特定のマッチャーに一致すると主張する慣用的な Hamcrest パターンは何ですか?
次のスニペットを調べます。
これは、リストに「x」で終わらない要素がないことを表明します。もちろん、これは、リストのすべての要素が「x」で終わることを示す二重否定の方法です。
スニペットがスローすることにも注意してください。
これは、「x」で終わらない要素だけではなく、リスト全体をリストします。
だから、慣用的な方法があります:
- 各要素が「x」で終わることを主張する (二重否定なし)
- アサーション エラーの場合、「x」で終わらない要素のみを一覧表示する
java - 他のライブラリに含まれているライブラリの最新バージョンを常に優先するように Eclipse に指示するにはどうすればよいですか?
私のプロジェクトではjunit-4.8.2.jarとmockito-all-1.8.5.jarを使用しています。どちらにも Hamcrest 1.1 が含まれています。これは、hamcrest-all-1.2.jar を追加するまで問題なく動作しています。どうやら私のコードはHamcrest 1.2にコンパイルされますが、Hamcrest 1.1で実行されているため、さまざまなNoSuchMethodErrorが発生します。
この問題を解決するにはさまざまな方法があるようですが (代わりに junit-dep-4.8.2 を使用するなど)、Eclipse に Hamcrest 1.2 を優先するように指示する方法はありますか。実行時とコンパイル時で?
java - junitがhamcrestの一部をバイナリに含めたが、ソースには含めなかった理由
さて、ここがjunitをダウンロードする場所です。コンパイルされたjarを開きます-パッケージorg.hamcrestがあります。source-jarを開きます-そのようなパッケージはありません。hamcrestのソースはgooglecodeで入手できるので、それは非常に奇妙です。
それで、ユーザーに不便をかけることを除いて、これの理由はありますか?
これにどのように対処しますか、またはIDEでこれらのソースを調べないでください。
java - hamcrest の hasKey() メソッドをコンパイルできません
これはコードです:
これはコンパイラが言っていることです:
なぜ、何ができるのですか?
java - 静的インポートを使用するときに型推論をヒントする方法は?
ユニットテストでハムクレスト付きのjunitを使用していますが、ジェネリックスの問題が発生しました。
この方法では型推論が利用できないことを認識しており、解決策の1つは型ヒントを提供することですが、静的インポートを使用する場合、どのように型推論を行う必要がありますか?
jmock - JMockの期待 - 期待の実際の値を確認することは可能ですか?
私は Java と JMock が初めてで、現在、モッキングに頭を悩ませようとしています。ダミー クラスを使用して、このダミー テストを作成しました。
}
私の Class2Impl.method2() は整数 10 を返しますが、期待値は 1234 に設定されています。10を返すことを確認することは可能ですか、それとも意味がありますか?
ありがとう
java - 一般的な assertThat(ArrayList, hasItems(InstanceOfSomeInterface)) が機能しない
オンhasItems
になっている「実際の」コレクションでHamcrest を使用したいArrayList<? extends SomeInterface>
コンパイラは次のように述べています。
assertThat(T, Matcher<T>)
型のメソッドAssert
は引数に適用できません(ArrayList<capture#9-of ? extends MyInterface>, Matcher<Iterable<MyInterface>>)
何がうまくいかないのですか?それについて私は何ができますか(私は本当にここでHamcrestを使いたいです)?
java - LambdaJ クラスのプロパティマッチャー
Class オブジェクトを返すメソッドの戻り値を検証する Hamcrest マッチャーを作成しようとしています。たとえば、次のクラスがあるとします。
呼び出しの結果と一致する Hamcrest マッチャーを作成するテストがありますgetClazz()
。
ただし、このマッチャーは実行時に例外をスローします。
LambdaJ を使用してそのようなマッチャーを作成する方法はありますか?
java - IntelliJ 10.5 でテストを実行しているときに「NoSuchMethodError: org.hamcrest.Matcher.describeMismatch」を取得する
JUnit-dep 4.10 と Hamcrest 1.3.RC2 を使用しています。
次のようなカスタム マッチャーを作成しました。
Ant を使用してコマンド ラインから実行すると、問題なく動作します。しかし、IntelliJ から実行すると、次のエラーで失敗します。
私の推測では、間違った hamcrest.MatcherAssert を使用していると思われます。使用している hamcrest.MatcherAssert (つまり、hamcrest.MatcherAssert に使用している jar ファイル) を見つけるにはどうすればよいですか? AFAICT、私のクラスパスにある唯一の hamcrest jar は 1.3.RC2 です。
IntelliJ IDEA は JUnit または Hamcrest の独自のコピーを使用していますか?
IntelliJ が使用しているランタイム CLASSPATH を出力するにはどうすればよいですか?