問題タブ [dart-unittest]
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.
dart - Dartの単体テストで非同期セットアップを待つ方法は?
私の単体テストには、非同期で実行する必要があるセットアップが必要です。つまり、テストを実行する前にセットアップが完了するのを待つ必要がありますが、セットアップでは Future が処理されます。
dart - 非同期コードの UnitTest の例
どういうわけかDartで単体テストを読んだ後、sでそれを使用する方法をまだ理解できませんFuture
。
例えば:
}); }
したがって、テストでは、実際のMongoDbDatabaseBase
クラスへのいくつかのパラメーターを使用して基本抽象クラスのインスタンスを作成し、作成されたかどうかをすぐに確認します。次に、非常に単純な関数を実行するだけです。この関数は次のように定義されます。AddMessage
と戻りcompleter.future
ます。
渡された値message
が null の場合、関数は次のように失敗します。.completeError('Message can not be null');
Future
実際のテストでは、正常に完了したかエラーが発生したかをテストしたいと考えています。したがって、これは返品をテストする方法を理解するための私の試みですFuture
-問題は、このテストが失敗しないことです :(
を返す関数をテストする方法の小さなコード例を答えに書いていただけますFuture
か? そして、テストでは、戻り値(成功時)をテストし、成功値が正しくない場合はテストに失敗し、別のテストが失敗すると、関数は失敗してブロックFuture
に入ります。onError:
dart - 分析の警告によってランタイム エラーがトリガーされるようにする方法
次の例では、mainがDogのsniff関数を呼び出すことが許可されています。犬ができることを正確に言うと、どういうわけかクライアントはより多くのことを知っていて、その特別な知識でオブジェクトにもっと多くのことをさせることができます-それはカプセル化リークだと思います. 一般的なケースで必ずしも死ぬことを望んでいるわけではありませんが、メソッドが存在する場合にのみメソッドが呼び出されるようにするフラグまたは実行方法はありますか。Dart エディターが警告を表示するため、言語が何かが間違っているという知識をサポートしていることを私は知っています: The method 'sniff' is not defined for the class 'Dog' . --checkedフラグを付けて実行しても、これは問題なく実行されます。
したがって、同様のコードがテストによって呼び出されたとします。テストの実行時に Dart を失敗させるフラグやコードはありますか?
dart - Dart unittest パッケージで protectAsyncN はどのように機能しますか?
protectAsyncN メソッドの目的がよくわかりません。
誰かが私にそれがどのように機能するべきか説明してもらえますか? たとえば、次のテスト ケースを想像してください。
振る舞いはどうあるべきですか?このテスト ケースはパスするはずですが、次のメッセージが表示されます。
GuardAsync を使用してみましたが、期待どおりに動作します。しかし、私は本当にprotectAsyncを理解していません。
誰かがその目的と正しい使い方を説明してもらえますか? どうもありがとう!
dart - 単体テストの完了後に Dartium を閉じる方法
単体テストが完了した後 (成功または失敗)、Dartium ブラウザーは開いたままになります。テスト内から閉じる方法はありますか?
unit-testing - Dart でリファクタリングしやすいモッキング
これまでのところ、dart で見たすべてのモッキング ライブラリ (unittest/mock、dartmocks) は、文字列を使用してメソッド呼び出しを表しています。例えば
問題は、fum の名前を変更したい場合、IDE がモックされたメソッド呼び出しを取得しないため、手動で変更する必要があることです。
実際のメソッド呼び出し ( foo.fum()
) で動作することを知っている人はいますか? つまり、Javaのmockitoなどに似ています
dart - クラスをモックするときの警告
私はこの記事を読んでいます - https://www.dartlang.org/articles/mocking-with-dart/ - Dartを使ったモックについて、この簡単な例が機能するようになりました。
コードは「BAR」を正しく出力するため、モックは明らかに機能します。ただし、Dart エディターは警告/エラーを生成します。
この警告/エラーにもかかわらず、コードは機能しているように見えますが、エラーを取り除きたいです。それ、どうやったら出来るの?