問題タブ [unit-testing]
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 - 単体テストで Factory の結果を確認する
同様の動作を持ついくつかのクラスを開発しましたが、それらはすべて同じインターフェースを実装しています。適切なオブジェクトを作成してインターフェイスを返すファクトリを実装しました。工場の単体テストを書いています。返されるのは、オブジェクトへのインターフェースだけです。工場が正しく機能していることをテストする最良の方法は何ですか?
その答えをJavaで知りたいのですが、言語をまたがる解決策があれば教えていただきたいです。
2番の答えは、他の答えのように行われますか? もしそうなら、私は他の答えも受け入れたとマークし、私の質問を言い換えて、インターフェースが返されるファクトリとインターフェースを実装した具象クラスのタイプがわからない場合と、具象クラスが何であるかを知っている場合の両方に対処します使用済み。
wcf - WCF サービスを単体テストするにはどうすればよいですか?
データベースやその他のアプリケーションやサービスへのアクセスを可能にする DLL がたくさんあります。
これらの DLL を、クライアントが使用する薄い WCF サービス レイヤーでラップしました。
WCF サービス層のみをテストする単体テストを作成する方法が少しわかりません。DLL の単体テストと WCF サービスの統合テストだけを作成する必要がありますか? 知恵をいただければ幸いです...ユニットテストが実際にデータベースに送られる場合、実際には真のユニットテストではないことを知っています。また、単体テストで WCF サービス ホストを実際にテストする必要がないことも理解しています。
そのため、何をどのようにテストするかについて正確に混乱しています。
unit-testing - CakePHPのテストメソッド間でフィクスチャを動的に変更できますか?
テスト方法間でフィクスチャを変更することは可能ですか? もしそうなら、どうすればこれを行うことができますか?
この問題の私の構文:
Cakephp フレームワークでは、フィールドをテーブルに追加することによって構成された動作のテストを作成しています。これは、「作成済み」フィールドと「変更済み」フィールドを追加すると、保存時にこれらのフィールドが自動入力されるのと同じように機能することを意図しています。
これをテストするために、さまざまなセットアップをテストするために数十のフィクスチャ/モデル コンボを作成できますが、テスト メソッド間でフィクスチャの「形状」を変更するだけの方が 100 倍速く、簡単です。
CakePHP フレームワークに慣れていない場合でも、 SimpleTestを使用しているため、私を助けることができるかもしれません。
編集:より一般的になるように質問を言い換えました
visual-studio - UI とイベントのテスト
したがって、単体テストが必須であることはわかっています。新しいモジュールを追加するときは、TDD が適していると思います。たとえ、実際には、私は実際にそれをしません。実際、コードのコメントに少し似ています。
本当のことは、UI と、イベントを生成するより一般的なオブジェクト (ユーザー コントロール、非同期データベース操作など) を単体テストする方法について頭を悩ませていることです。
私のコードの多くは UI イベントに関連しているため、単体テストを開始する方法さえよくわかりません。
そこにいくつかの入門書とスターター ドキュメントがあるはずですか? いくつかのヒントとヒント?
私は一般的にC#(2.0および3.5)で作業していますが、これが質問に厳密に関連しているかどうかはわかりません。
unit-testing - いつ嘲笑する必要がありますか?
モック オブジェクトとフェイク オブジェクトの基本的な理解はありますが、モックをいつどこで使用するかについてはよくわかりません。特に、ここのシナリオに適用されるためです。
unit-testing - ビジネス アプリケーションの単体テストはどのように行っていますか?
人々はビジネス アプリケーションのユニット テストをどのように行っていますか? 「テストが簡単」な例を使用した単体テストの例をたくさん見てきました。元。電卓。データ量の多いアプリケーションの単体テストはどのように行われていますか? サンプルデータをどのようにまとめていますか? 多くの場合、1 つのテストのデータが別のテストではまったく機能しない可能性があるため、1 つのテスト データベースだけを使用するのは困難ですか?
コードのデータ アクセス部分のテストは非常に簡単です。テストが難しいと思われるデータに対して機能するすべてのメソッドをテストしています。たとえば、何を投稿するかを決定したり、数値を調整したりするために大量のデータ アクセスが行われる投稿プロセスを想像してください。投稿が適切に行われたことを確認するためのその後のテストに加えて、発生する (そしてテストが必要な) いくつかの中間ステップがあります。成功。これらの手順の一部は、実際にはストアド プロシージャである場合があります。
過去に、テスト データをテスト データベースに挿入してからテストを実行しようとしましたが、正直なところ、この種のコードを記述するのは非常に困難です (そしてエラーが発生しやすくなります)。また、事前にテスト データベースを構築し、変更をロールバックすることも試みました。それは問題なく動作しますが、多くの場所ではこれも簡単には実行できません (多くの人はそれを統合テストだと言うでしょう。それで、どうにかしてこれをテストできるようにする必要があります)。
答えが、これを処理する良い方法がなく、現在はちょっとひどいということである場合、それも知っておくと便利です.
考え、アイデア、提案、またはヒントをいただければ幸いです。
c# - NUnit - 特定のインターフェースを実装するすべてのクラスをテストする方法
インターフェイス IFoo があり、それを実装するいくつかのクラスがある場合、これらすべてのクラスをインターフェイスに対してテストするための最良/最もエレガント/最も賢い方法は何ですか?
テスト コードの重複を減らしたいと考えていますが、ユニット テストの原則には「忠実であり続ける」必要があります。
ベストプラクティスは何だと思いますか? 私はNUnitを使用していますが、ユニットテストフレームワークの例は有効だと思います
javascript - Javascript のベスト プラクティス
Javascript のベスト プラクティスを学ぶのに役立つリソースは何ですか? 私は主に、何かがいつオブジェクトであるべきか、いつDOMで追跡されるべきかについて心配しています。また、単体テストが簡単になるように、コードを整理する方法をよりよく学びたいと思います。
xcode - Xcode 3.1 での単体テスト
「Objective-C を単体テストする最良の方法」に関する質問を読み、指示に従いましたが、何をしても単体テストが実行されません。実際にはプログラム全体が実行されず、次のメッセージが表示されます。
dyld: ライブラリがロードされていません: @rpath/SenTestingKit.framework/Versions/A/SenTestingKit から参照されています /Users/garethlewis/work/objc/UnitTesting/build/Debug/UnitTesting 理由: 画像が見つかりません
DYLD_FALLBACK_FRAMEWORK_PATH 変数を設定し、XCInjectBundle と DYLD_INSERT_LIBRARIES も設定し、変数 -SenTest All を追加しました。
単体テストに失敗する Xcode 3.1 だけをインストールすることはできません。
Xcode 3.1 で単体テストを機能させることができた人は、何をする必要があるかについて詳細を説明できますか。私がやろうとしていることで、それはとても役に立ちます。
c# - 複数のスレッドから単体テストを行う最良の方法は何ですか?
この種のことは、私の別の質問の続きです。
基本的に、ファイルにアクセスするためのコードを取得したら (すぐに回答を確認します)、それをテストする最良の方法は何でしょうか?
多くのBackgroundWorkerまたは何かを生成し、それらすべてにファイルのロード/保存を指示し、さまざまなファイル/オブジェクトサイズでテストするメソッドを作成することを考えています。次に、スレッドから応答を取得して、失敗したか、成功したか、世界を内破させたかなどを確認します。
これにアプローチするための最良の方法について何か提案はありますか? 前に言ったように、これは私にとってまったく新しいことです:)
編集
ajmastrean の投稿に続いて:
私はDebug.Assertsでテストするためにコンソールアプリを使用しています:)
アップデート
私は元々 、スレッド化に対処するためにBackgroundWorkerを使用していました (Windows 開発者の使用に慣れているため) 続行する前に複数の ops (スレッド) を完了する必要があるテストを実行しているときに、それが次のようになることに気付きました。これを行うためのちょっとしたハック。
その後、 ajmastreanの投稿をフォローアップしたところ、並行操作を処理するためにThreadクラスを実際に使用する必要があることに気付きました。この方法を使用してリファクタリングします (別のアプローチではありますが)。