問題タブ [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.
jmockit - 期待を記録する場所が無効です
Junit 4でJMockit 1.14を使用しています。
私のコードに明らかに問題がありますか?
java - JMockit モックは List ではなく String を返します提供された
確かに、JMockit を使用してからしばらく経ちましたが、この種の難しさは覚えていません。非常に単純なコードの非常に単純なテストがあります。しかし、returns = List を設定しても、モックされたメソッドは String だけを返し続けます! テストは次のとおりです。
そして、これがテストしているコードです:
「params」は Map ではなく、MultivaluedMap であることに注意してください。そのため、params.get() は List を返すことが期待されます。ご覧のとおり、リストへの戻りを設定していますが、コード内のモックされた get() は含まれている文字列のみを返し、これによりキャスト例外が発生します。
私も return(...) を使ってみました。別の手順でarSkipを作成し、それを最終的なものとして定義しようとしました。何も機能しません。
JMockit が私のリストを順次応答として解釈しているのではないかと疑っていますが、型がメソッドの戻り値の型と一致することを確認する必要があります。ここで何が起こっているのですか?
testing - Clojureの期待にフィクスチャを実装する方法は?
私は最近、Clojure テスト フレームワークの期待を使い始めました。テストの一環として、新しい test/expect ステートメントを開始する前に元の値にリセットしたいデータ セットがあります。
clojure.test では、フィクスチャを作成して (use-fixtures :each my-fixture-fn) を呼び出します。
これを期待して行う方法の良い例を探しましたが、まだ運がありません。期待される各テストの前に実行されるフィクスチャを実装する方法の具体的な例を誰かが提供できますか?
java - jMockで未使用の期待を見つける方法はありますか?
多くの Java テストに jMock を使用しています。一部のテスト クラスでは、ほとんどのテストが同じように機能するため、共通の期待がsetUp()メソッドに反映されます。
多くの場合、setUp()メソッドの期待値の一部は、一部のテストにのみ使用されます。allowing()したがって、これらのすべての期待は、すべてのテストを呼び出す必要がないタイプになる傾向があります。
現在、システム内部のコードが予期しない方法で変更されることがあります。たとえば、非推奨の API 呼び出しが、非推奨の API 呼び出しに置き換えられる可能性があります。しかし、これらの期待は、少なくとも 1 回の呼び出しを必要としないため、引き続き成功します。私の知る限り、「このテスト クラス全体で少なくとも 1 回の呼び出しが必要」と言う方法はなく、Mockeryとにかく毎回異なるインスタンスであるため、決して機能しません。
それでも、これらを追跡して自動的に削除する方法があればいいのですが。
手動でできると思います...行をランダムに削除します->テストがまだ成功するかどうかを確認します->成功した場合はコミットし、そうでない場合は元に戻します->繰り返します。
しかし、自動の方法はありますか?(明らかに、手動プロセスを自動化するために独自のツールを作成する以外は。)
java - JMockit - 期待 - モック化されたオブジェクトを引数として含むメソッドの呼び出しに一致
JMockit を使用してアプリケーションをテストしています (Java 8、Junit 4.12、JMockit 1.17)。
いくつかのデータをエンドポイントのリストにアップロードすることになっているコードがあります。
エンドポイントへのアップロードを実際に実行するクラスは、PlatformDataUploader と呼ばれます。このクラスには、単一のエンドポイントへの単一の「アップロード」を実行する「アップロード」と呼ばれるメソッドがあります。このメソッドは、宛先の名前 (2 文字の文字列と、アップロードするオブジェクト) を取ります。宛先の名前に基づいて、データの送信先の URL を構築します。
アプリケーションの実行時に、PlatformDataUploader のアップロード メソッドが予想される回数 (7 回。アプリケーションは現在 7 つのエンドポイントにデータをアップロードするように構成されているため) 呼び出されることを簡単に確認するテストを作成したいと思います。アップロード メソッドに渡される宛先文字列が想定どおりであることを確認したいのですが、送信されるデータ (PlatformInstallationData のインスタンスによって表される) は気にしません。
アプリケーション コードの簡略版は次のとおりです。
テスト コードの簡略版は次のとおりです。
テストを実行すると、「mockit.internal.MissingInvocation: Missing 1 invocation」というメッセージが表示されます。これは、私が定義した期待値の最初の行を指します。
問題は、モックされた PlatformInstallationData であるアップロード メソッドの 2 番目の引数が、アプリケーション コードで作成されたインスタンスと一致しないことです (そのインスタンスもモックする必要があります)。
何が起こっているのかを理解するために、アップロード メソッド (アプリケーション コードとテスト コード) から 2 番目の引数を削除したテストを行ったので、"AP" などの文字列と一致させるだけで済みましたその時点でアプリケーション内に存在する文字列であり、その場合は正しく一致しました。したがって、このアプローチを使用すると、文字列を正しく一致させることができますが、モックされた PlatformInstallationData オブジェクトとは一致しないことがわかります。
メソッドの引数としてモックされたオブジェクトを含む期待を以前に作成できたと確信していたので、この動作に驚いています。
誰でもこの動作を説明し、おそらくこれをテストする方法を提案できますか? どうもありがとう!
java - java.lang.Exception: テスト クラスには、引数のない public コンストラクタが 1 つだけ必要です:
クラスがあります:以下のようにコンストラクターでwebdriverインスタンスをインスタンス化する関数ライブラリー
スーパークラスを拡張する子クラスの webdriver インスタンスにアクセスしています: 関数ライブラリ
上記のjunitコードを実行すると、次のようなエラーが発生します
java.lang.Exception: テスト クラスには、引数のない public コンストラクタが 1 つだけ必要です
誰でも私が間違っているところを許すことができます