問題タブ [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.
java - Hamcrest での複数の正しい結果 (or-matcher はありますか?)
私はマッチャーに比較的慣れていません。JUnit と組み合わせてhamcrest をいじっていますが、ちょっと気に入っています。
複数の選択肢のうちの1つが正しいと述べる方法はありますか?
何かのようなもの
私がテストしているメソッドは、コレクションの 1 つの要素を返します。リストには複数の候補が含まれる場合があります。私の現在の実装では最初のヒットが返されますが、これは必須ではありません。可能な候補のいずれかが返された場合、テストケースが成功することを望みます。これを Java でどのように表現しますか?
(私はhamcrest-alternativesを受け入れています)
objective-c - OCMock または Hamcrest で構造体を使用する
私は障害物にぶつかっていて、ここの素晴らしい集団精神が助けになるかどうか疑問に思っています. ObjC CocoaTouch では、構造体パラメーターを受け取り、構造体を返すオブジェクトをモックしようとしています。OCMock が毛玉を吐いているので、Hamcrest マッチャでラッピングしてみました。死ぬな。私がテストしている関数/メソッドは次のようになります。
私は次のようなコードを使用します:
それはちょっとうまくいきます。したがって、テストしているオブジェクトで、必要な編集を行って、緑色のバーを取得します...エラー..ビルド情報ウィンドウの緑色のボタン。テストに合格するはずだと確信している場合、アサーション失敗エラーが発生します。エラーは、メソッドが予期せず呼び出されたことを通知し、これらの構造体の値を疑問符としてリストします。Hamcrestマッチャーで構造体をラップしようとしましたが、どこにも行きません。私はデバッガーを分解する準備をしています。間違いなく何が問題なのかを教えてくれます。OCMock/Hamcrest と構造体で同様の問題を抱えている人はいますか? もしそうなら、これらのタイプを処理する最良の方法は何ですか?
unit-testing - 列挙型をテストするには?
私は現在、小さなライブラリ用の単体テストの多かれ少なかれ完全なセットを構築しようとしています。さまざまな実装が存在できるようにしたいので、この一連のテストを (a) さまざまな実装をテストするために再利用できるように一般的なものにし、(b) できるだけ完全なものにしたいと考えています。(b) の部分については、列挙型をテストするためのベスト プラクティスがあるかどうかを知りたいです。たとえば、次のような列挙型があります。
ここで、すべての列挙型が実際に存在することを確認したいと思います。それも必要ですか?assertThat
現在、次の例のようにHamcrests を使用しています。
「January」列挙型が欠落しているとコンパイル時エラーが発生しますが、欠落している列挙型を作成することで修正できます。
ここではJavaを使用していますが、あなたの答えが別の言語に対するものであってもかまいません..
編集:
mkato と Mark Heath の両方が指摘しているように、存在しない列挙型を使用している場合、コンパイラはコンパイルされないため、列挙型のテストは必要ない可能性があります。しかし、異なる実装で同じテストを実行する別の TCK のような test.jar を構築したいので、これらの列挙型をテストしたいと思います。したがって、私の質問は次のようなものでした:列挙型をテストする最良の方法は何ですか?
もう少し考えた後、上記の Hamcrest ステートメントを次のように変更しました。
このステートメントは、1 月が (まだ) ない場合に NPE をスローするようになりました。このアプローチに問題はありますか?
eclipse - Hamcrest を Eclipse の JUnit に統合するための推奨される方法は何ですか?
Hamcrest を Eclipse の JUnit 構成に統合するための推奨される方法はありますか? 現在、Eclipse の JUnit には Hamcrest-core のみが付属しています。その構成を編集して、Hamcrest-all を含めたいと考えています。どうすればいいですか?
testing - Hamcrest 1.2 の新機能
Hamcrest 1.1 と 1.2 の違いは何ですか? リリース ノート ページやファイル リストの変更が見つかりませんでした。そのような情報はどこで見つけることができますか?
java - HamcrestのhasItemsを使用しようとするこのコードがコンパイルされないのはなぜですか?
なぜこれはコンパイルされないのですか、ああ、何をすべきですか?
コメントからコピーされたエラー:
java - HamcrestとTestNGの混合
マッチャーをTestNGアサーションで簡単に使用できるように、HamcrestをTestNGと統合した人はいますか?
java - Ant + JUnit: NoClassDefFoundError
わかりました、私はイライラしています!私は何時間も探し回りましたが、まだ困惑しています。
環境: WinXP、Eclipse Galileo 3.5 (直接インストール - 追加のプラグインなし)。
したがって、簡単な JUnit テストがあります。内部のEclipse JUnit実行構成から正常に実行されます。このクラスは何にも依存していません。この問題を可能な限り絞り込むために、次のものが含まれています。
ここまで汗なし。ここで、Ant 内からこのテスト ケースを実行するという非常に高度な手順を実行したいと思います (最終的な目標は、Hudson と統合することです)。
そこで、build.xml を作成します。
${basedir} は、ソース、クラス、およびビルド ファイルを含むワークスペース内の Java プロジェクト名です。すべての .java と build.xml は ${basedir}/src にあります。.class ファイルは ${basedir}/bin にあります。
Windows / Preferences / Ant / Runtime / Contributed Entries を介して eclipse-install-dir/plugins/org.junit4_4.5.0.v20090423/junit.jar を Ant ランタイム クラスパスに追加しました。ant-junit.jar は Ant Home Entries にあります。
では、この非常に複雑なターゲットを実行するとどうなるでしょうか? 私のレポートファイルには以下が含まれています:
この org.hamcrest.SelfDescribing クラスとは何ですか? モックと何か関係がありますか?いいよ。しかし、なぜ依存関係があるのですか?私はそれで何もしていません。これは文字通り、JUnit 以外に依存関係のない Java プロジェクトです。
困った(そしてイライラした)!!
java - 従来の assertXXX() メソッドの代わりに Hamcrest-Matcher と assertThat() を使用する理由
Assert class JavaDoc の例を見ると
私は大きな利点を見ていませんassertEquals( 0, 1 )
.
コンストラクトがより複雑になった場合、メッセージにとっては良いことかもしれませんが、より多くの利点が見られますか? 読みやすさ?
hamcrest - 非 Java Hamcrest マッチャー ライブラリの安定したリリース ビルドはありますか?
明らかに、hamcrest Java ライブラリには安定したリリースがありますが、hamcrest-php、hamcrest-python および hamcrest-as3 (およびおそらく他のものですが、現時点で私が気にかけているもの) については、そうではありません。ソース コード形式でのみ取得できます。これは、控えめに言っても、ライブラリのバージョン管理されたコピーを運用マシンに展開する必要がある場合に、少し面倒です。
これらのライブラリに関するコミュニティは、それらの安定したリリースを作成する計画を持っていますか?