問題タブ [expectations]

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 投票する
0 に答える
553 参照

ruby-on-rails - 任意の数の任意の RSpec 引数の制約

最初の引数を一致させ、他の引数を無視して期待値を正しく記述する方法は? その他の引数はいくつでも指定できます。

このエラーが発生しました:

引数と一致しないのはなぜですか?

このためのカスタムマッチャーを提案できますか?

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

java - JMockit java.lang.IllegalStateException による JUnit テスト ケースの失敗: 期待値を記録するための無効なコンテキスト

シングルトン クラス HiveUtil を使用するクラス PartitionFilter の単体テストを行っています。

私のテスト ケースは、実行中に「java.lang.IllegalStateException: Invalid context for the recording of expected」というエラーで失敗します。なぜこれが起こっているのかについての説明はありますか?

これは私のpom.xmlの関連部分です:

pom の junit 依存関係の前に jmockit 依存関係を配置しようとしました。それはうまくいきませんでした。

さらにいくつかの調査では、クラスの先頭で @RunWith(JMockit.class) アノテーションを使用していないことが示唆されました。しかし、使用しようとすると、「クラスを型に解決できません」というエラーが表示されました。関連するすべてのインポートを行いました。

私は何を間違っていますか?

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

mocking - PHPUnit: 同じスタブ化されたメソッドが異なる引数で複数回呼び出されると、テストで期待される順序が無視される

別のメソッド(メソッド1と呼びましょう)を複数回呼び出すメソッド(メソッド2と呼びましょう)がありますが、引数は異なります。

クラス MyClass.php は次のとおりです。

テストするときは、method1 がいつどのように呼び出され、何を返すかを制御するために、method1 のスタブを作成します。method2 のテストでは、method2 内でコードが実行される順序に従います。

テスト クラス MyClassTest.php は次のとおりです。

私のテストでは、PHPUnit がこの順序に従わず、method1 の最後の (この場合は 2 番目の) 呼び出しでスタックするように見えます。

1 件の失敗がありました:

1) MyClassTest::method2_was_called_successfully_with_one_and_then_two メソッド名の期待値が 1 回呼び出されたときと等しい 呼び出し MyClass::method1('one') のパラメータ 0 が期待値と一致しません。「1」に「2」が含まれていることをアサートできませんでした。

/path/to/the/files/MyClass.php:14 /path/to/the/files/MyClassTest.php:28

失敗!テスト: 1、アサーション: 0、失敗: 1。

ここで私が見逃している/間違っているという基本的なことについて何か考えはありますか?

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

mocking - JMockit Expectation API : How to throw an exception upon method/constructor invocation

While using JMockit I want to throw an exception upon a constructor invocation like this:

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

java - jmock オブジェクトの状態をリセット

モック オブジェクトがあり、複数回HttpServletRequestリセットしたい。getHeader("someHeader")例えば:

ここで何かをしてください:

getHeaderオブジェクトの状態nullが定義されると、それを変更することはできませんか? に対して「こんにちは」を返すようにしたかったのですgetHeader

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

php - モック オブジェクトに対する PHPunit の期待が満たされていない

これが私のクラスです:

これが私のテストです:

テスト結果:

メソッド名の期待に失敗しましたが、2 回呼び出されたときと同じです。メソッドは 2 回呼び出されると予想されていましたが、実際には 0 回呼び出されました。

私の質問は次のとおりです。私はそのようなことに数回直面しましたが、何が起こっているのか理解できません。なぜ最初の期待は適切で、2 番目の期待は適切ではないのですか?

更新1

私はそのような状況に数回直面したことを忘れていました。これが私が気づいたことです。xDebugを使用して、テスト内でそれを見ました

moduleManager オブジェクトは、unittest オブジェクト内とオブザーバー オブジェクト内に同じキャッシュを持ちます。moduleMatcher に smth を適用すると、両方の場所に表示されます

$unittest->yesNo のハッシュは $observerObject のハッシュとは異なります。いくつかのメソッドにマッチャーを設定すると、ユニットテストクラス内でのみ適用されます!!!

なぜそれが起こったのですか?別のオブジェクトを作成しないようにする方法

Upd.2 見つかりました!

オブジェクトマネージャでオブジェクトを作成する場合

変数「moduleManager」および「yesNo」は、コンストラクターの変数と同じである必要があります。

phpunit がこれをチェックするコードは次のとおりです。

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

jmockit - 期待を記録する場所が無効です

Junit 4でJMockit 1.14を使用しています。

私のコードに明らかに問題がありますか?

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

java - JMockit モックは List ではなく String を返します提供された

確かに、JMockit を使用してからしばらく経ちましたが、この種の難しさは覚えていません。非常に単純なコードの非常に単純なテストがあります。しかし、returns = List を設定しても、モックされたメソッドは String だけを返し続けます! テストは次のとおりです。

そして、これがテストしているコードです:

「params」は Map ではなく、MultivaluedMap であることに注意してください。そのため、params.get() は List を返すことが期待されます。ご覧のとおり、リストへの戻りを設定していますが、コード内のモックされた get() は含まれている文字列のみを返し、これによりキャスト例外が発生します。

私も return(...) を使ってみました。別の手順でarSkipを作成し、それを最終的なものとして定義しようとしました。何も機能しません。

JMockit が私のリストを順次応答として解釈しているのではないかと疑っていますが、型がメソッドの戻り値の型と一致することを確認する必要があります。ここで何が起こっているのですか?

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

testing - Clojureの期待にフィクスチャを実装する方法は?

私は最近、Clojure テスト フレームワークの期待を使い始めました。テストの一環として、新しい test/expect ステートメントを開始する前に元の値にリセットしたいデータ セットがあります。

clojure.test では、フィクスチャを作成して (use-fixtures :each my-fixture-fn) を呼び出します。

これを期待して行う方法の良い例を探しましたが、まだ運がありません。期待される各テストの前に実行されるフィクスチャを実装する方法の具体的な例を誰かが提供できますか?

0 投票する
0 に答える
52 参照

java - jMockで未使用の期待を見つける方法はありますか?

多くの Java テストに jMock を使用しています。一部のテスト クラスでは、ほとんどのテストが同じように機能するため、共通の期待がsetUp()メソッドに反映されます。

多くの場合、setUp()メソッドの期待値の一部は、一部のテストにのみ使用されます。allowing()したがって、これらのすべての期待は、すべてのテストを呼び出す必要がないタイプになる傾向があります。

現在、システム内部のコードが予期しない方法で変更されることがあります。たとえば、非推奨の API 呼び出しが、非推奨の API 呼び出しに置き換えられる可能性があります。しかし、これらの期待は、少なくとも 1 回の呼び出しを必要としないため、引き続き成功します。私の知る限り、「このテスト クラス全体で少なくとも 1 回の呼び出しが必要」と言う方法はなく、Mockeryとにかく毎回異なるインスタンスであるため、決して機能しません。

それでも、これらを追跡して自動的に削除する方法があればいいのですが。

手動でできると思います...行をランダムに削除します->テストがまだ成功するかどうかを確認します->成功した場合はコミットし、そうでない場合は元に戻します->繰り返します。

しかし、自動の方法はありますか?(明らかに、手動プロセスを自動化するために独自のツールを作成する以外は。)