問題タブ [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 がこれをチェックするコードは次のとおりです。