問題タブ [tdd]
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.
unit-testing - TDDの開始-課題?ソリューション?推奨事項?
OK、 TDDの使用を開始することについては、すでに質問があることを知っています。しかし、一般的なコンセンサスはそれを実行することであると私は知っていると思います。しかし、ゲームに頭を入れるには次の問題があるようです。
- コレクションを操作するとき、ジェネリックなどに基づいて、それが機能することを「知っている」場合でも、明らかな追加/削除/挿入が成功するかどうかをテストしますか?
- 一部のテストは、実装に永遠にかかるようです。文字列出力を操作する場合など、この種のことを実行するための「より良い」方法はありますか?(たとえば、解析する前にオブジェクトモデルをテストし、解析を小さな操作に分割してそこでテストします)私の考えでは、常に「最終結果」をテストする必要がありますが、それは大きく異なり、設定が面倒です。
- 私は使用するテストフレームワークを持っていないので(仕事は1つにお金を払わない)、もっと「練習」することができます。商用利用が無料の良いものはありますか?(現時点では、良い' olDebug.Assertを使用しています:)
- おそらく最大の..時々私は何が起こらないと期待するのかわからない..つまり、あなたはあなたの青信号を得るが、私はいつも私がテストを逃しているかもしれないと心配している..あなたはもっと深く掘り下げてコードを作成するか、そのままにして、後ですべてが失敗するのを待ちます(これにはさらにコストがかかります)。
だから基本的に私がここで探しているのは「それをするだけ」ではなく、もっと「私はこれをした、これに問題があった、これによってそれらを解決した」..個人的な経験:)
visual-studio-2008 - MSTest / VS2008 で TDD を緩和する方法
nUnit、MBUnit などの他のテスト フレームワークよりも MSTest の方が TDD/test first の方が難しいことを何度も読みました。インフラストラクチャ ポリシーにより、MSTest が唯一のオプションになるのはいつですか? 私は主に VS 2008 Team Suite について疑問に思っていますが、一部の MSTest 機能がそれらのバージョンにも含まれるようになったため、VS 2008 Pro のヒントも適していると思います。
c# - DataReaderからリストを作成するメソッドをテストするにはどうすればよいですか?
だから私は手動のデータベース操作に重いいくつかのレガシーコードに取り組んでいます。ここでは品質の類似性を維持しようとしているので、可能な限りTDDを使用します。
私が取り組んでいるコードは、入力する必要があります。たとえば、List<Foo>
機能しているFooに必要なすべてのフィールドを返すDataReaderからのコードです。ただし、コードが実際に1つのデータベース行ごとに1つのリスト項目を返すことを確認したい場合は、次のようなテストコードを記述しています。
これもかなり退屈で簡単に壊れます。
結果が脆弱なテストの大きな混乱にならないように、この問題にどのように取り組む必要がありますか?
ところで、私は現在これにRhino.Mocksを使用していますが、結果が十分に説得力がある場合は変更できます。代替案がTypeMockでない限り、彼らのEULAは私の好みには少し怖すぎたので、最後にチェックしました。
編集:私も現在C#2に制限されています。
unit-testing - ユニットテストのランダムデータ?
フィールドにランダムデータを入力するオブジェクトの単体テストを作成する同僚がいます。彼の理由は、通常のテストでは単一の静的な値しか使用しないのに対し、多くの異なる値をテストするため、テストの範囲が広がるためです。
私は彼にこれに対していくつかの異なる理由を与えました、主な理由は次のとおりです:
- ランダムな値は、テストが本当に再現可能ではないことを意味します(つまり、テストがランダムに失敗する可能性がある場合は、ビルドサーバーで失敗し、ビルドを中断する可能性があります)
- ランダムな値でテストが失敗した場合は、a)オブジェクトを修正し、b)毎回その値をテストするように強制する必要があります。これにより、動作することがわかりますが、ランダムであるため、値が何であるかはわかりません。
別の同僚が追加しました:
- 例外をテストしている場合、ランダムな値では、テストが期待どおりの状態になることは保証されません。
- ランダムデータは、単体テストではなく、システムのフラッシュと負荷テストに使用されます
他の誰かが私が彼にこれをやめさせるために彼に与えることができる追加の理由を追加できますか?
(または、これは単体テストを作成するための許容可能な方法であり、私と他の同僚は間違っていますか?)
java - プライベート メソッド、フィールド、または内部クラスを持つクラスをテストするにはどうすればよいですか?
JUnit を使用して、内部プライベート メソッド、フィールド、またはネストされたクラスを持つクラスをテストするにはどうすればよいですか?
テストを実行できるようにするためだけにメソッドのアクセス修飾子を変更するのは良くないようです。
java - 単体テストで Factory の結果を確認する
同様の動作を持ついくつかのクラスを開発しましたが、それらはすべて同じインターフェースを実装しています。適切なオブジェクトを作成してインターフェイスを返すファクトリを実装しました。工場の単体テストを書いています。返されるのは、オブジェクトへのインターフェースだけです。工場が正しく機能していることをテストする最良の方法は何ですか?
その答えをJavaで知りたいのですが、言語をまたがる解決策があれば教えていただきたいです。
2番の答えは、他の答えのように行われますか? もしそうなら、私は他の答えも受け入れたとマークし、私の質問を言い換えて、インターフェースが返されるファクトリとインターフェースを実装した具象クラスのタイプがわからない場合と、具象クラスが何であるかを知っている場合の両方に対処します使用済み。
visual-studio - UI とイベントのテスト
したがって、単体テストが必須であることはわかっています。新しいモジュールを追加するときは、TDD が適していると思います。たとえ、実際には、私は実際にそれをしません。実際、コードのコメントに少し似ています。
本当のことは、UI と、イベントを生成するより一般的なオブジェクト (ユーザー コントロール、非同期データベース操作など) を単体テストする方法について頭を悩ませていることです。
私のコードの多くは UI イベントに関連しているため、単体テストを開始する方法さえよくわかりません。
そこにいくつかの入門書とスターター ドキュメントがあるはずですか? いくつかのヒントとヒント?
私は一般的にC#(2.0および3.5)で作業していますが、これが質問に厳密に関連しているかどうかはわかりません。
php - PHP でのテスト駆動開発
私は PHP で作業している Web 開発者です。C# デスクトップ アプリケーションでのテスト駆動開発の使用経験は限られています。その場合、単体テスト フレームワークに nUnit を使用しました。
新しいプロジェクトで TDD の使用を開始したいのですが、どこから始めればよいかわかりません。
PHP ベースの単体テスト フレームワークについて、どのような推奨事項がありますか?また、TDD の概念にまったく慣れていない人に役立つリソースは何ですか?
unit-testing - TDD に「テスト感染」するにはどうすればよいですか?
私は、「テスト感染」した人々について読み続けています。つまり、TDD を「取得」するだけでなく、TDD なしでは生きていけないということです。彼らはいわば「変身」したのだ。問題は、どうすればそのようになるかです。
unit-testing - MbUnitに付属しているこのIcarusのものは何ですか?
MbUnitを何度もインストールする必要がありましたが、MbUnitと呼ばれるものが引き続き付属しています。
Gallilo Icarus GUI Test Runner
MbUnit GUIの単なるアップデートだと思って使用してみましたが、MbUnitテストが検出されず、アセンブリが正しく開かないこともあります。
おそらく私はそれを見落としているだけですが、新しいテストプラットフォームと関係があることを除いて、彼らのWebサイトでも多くの答えを見つけることができませんでした。
誰かが私にこれが何であるかについてのより良い説明を与えることができますか?