問題タブ [testdrivendesign]
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 - 単体テストに関しては、CA1822 を最新の開発の悪い設計に導きますか?
コード分析ルールが破られた場合、コードをコミットできないという確固たる制限付きで、ビルド サーバー内でコード分析を使用します。CA1822 が有効になっているため、非常に多くの静的関数があります。ここで、モッキングと依存性注入を使用して単体テストを強制したいと考えています。しかし、私たちの多くの静的関数では、いくつかの静的関数をモックするのは簡単ではありません. 特に、静的関数が静的関数を呼び出す場合。CA1822 を無効にして静的関数を削減することを考えています。なぜなら、私は自問自答しているためです。パフォーマンスは問題ではないという他の多くの質問を読みました。では、関数を静的にするにはどうすればよいでしょうか。私の意見では、CA1822 は悪い設計につながります。私が間違っている?
ruby-on-rails - テスト駆動開発はどこから始める?
私はテスト駆動開発に比較的慣れていないので、どこから始めるべきか疑問に思っていました。テストのやり方がよくわかりました。最初に何をテストすればよいのでしょうか?これに対するベストプラクティスはありますか? 最初にモデルをテストする必要がありますか? コントローラー?最初に統合テストを作成し、そこからすべてを構築して合格する必要がありますか?
これについてどのような意見がありますか?
unit-testing - 単体テストとTDD(テスト駆動開発)の違いは何ですか?
違う名前で同じものですか?
両方の「テスト」という言葉は、どういうわけか私にそれらが似ていると思わせます..
java - テスト駆動開発を証明する Java プログラム
Java プログラムを作成し、プログラムの作成中に TDD を使用したことを証明する必要があります。テスト駆動開発の使用を証明する何らかの方法を見つける必要があります。つまり、何らかのテストの失敗をログに記録し、コードの書き込みをログに記録し、テストの成功をログに記録するなどです。どんな助けでも大歓迎です。また、Java 関連の TDD ドキュメント ソースも役に立ちます。ありがとうございました!
unit-testing - テスト駆動開発に関する混乱
ウィキペディアによると、TDD の手順は次のとおりです。
ステップ 1: 単体テストを作成する
ステップ 2: 単体テストを実行する
ステップ 3: モジュールのコードを書く
ステップ 4:すべてのテストを再度実行する
ステップ 5: コードをクリーンアップする
ステップ 6: ステップを繰り返す
質問 1 : TDD では、主に単体テストを作成します。統合テストとシステム テストは、上記のステップのどこに当てはまりますか?
次の例を検討してください。
開発しなければならない機能があるとします。次に、TDD に従って、短いイテレーションでこの機能を開発します。この機能をモジュール 1 とモジュール 2 の 2 つのモジュールに分割したとします。上記の手順に従って、TDD でこれらのモジュールを開発するための反復手順を記述しています。(質問 2) 次の手順で間違っているところを訂正してください。
**反復 1: **
ステップ 1: モジュール 1 の単体テストを作成します。
ステップ 2: モジュール 1 に対してこの単体テストを実行します (このテストは失敗します)。
ステップ 3: モジュール 1 のコードを開発します。
ステップ 4: モジュール 1 の単体テストを再度実行します (このテストはパスします)。
**反復 2: **
ステップ 1: モジュール 2 の単体テストを作成する
ステップ 2: モジュール 2 の単体テストを実行する
ステップ 3: モジュール 2 のコードを書く
ステップ 4: モジュール 1 の単体テストとモジュール 2 の単体テストを実行します。モジュール 2 がモジュール 1 の機能を壊さないかどうか、私の質問は、ここではモジュール 2 のみをテストしていることです。まだモジュール 1 と統合されていないので、モジュール 1 をどのように壊しますか?)
**反復 3: **
ステップ 1: 統合テストを作成する (ここにいますか? )
ステップ 2: 統合テストを実行します (モジュール 1 とモジュール 2 がまだ統合されていないため、テストは失敗します)。
ステップ 3: モジュール 1 とモジュール 2 を統合する
ステップ 4: すべてのテストを実行する (モジュール 1、モジュール 2 の単体テスト、および統合テスト)
(質問 4: なぜこのステップでモジュール 1 と 2 の単体テストを実行するのですか?)
反復 4 (すべてのモジュールが統合されている場合):
ステップ 1: システム テストを作成する
ステップ 2: システム テストを実行します (失敗します)。
ステップ 3: (質問 5:) システム テストに関しては、ここにどのコードを記述すればよいですか? TDD の原則に従って、最初にテストを記述し、次に開発コードを記述するので、ここにどのコードを記述しますか?
javascript - TDDの原則、テストを失敗させる方法
実際にTDDなどを勉強していて、例で学んでいます。
実際、スタブとモックを使用して、実際の単体テストを紹介するために、小さな (非常に小さな) ORM を構築しています。
私はこのように実行し、テストを実行し、いくつかの小さな実装 (getAll メソッド) を作成しました (失敗 -> テストをパスさせる -> リファクタリング)
実際、ここに私のコードがあります:
MongodbAdapter
MysqlAdapter
FactoryAdapter クラス
関連する単体テスト:
TestMongoAdapter
他の2つについても同様です。この場合、私の質問は構文の方法ではありません。
質問
実際には、関係するアダプター内で MYSQL および MONGODB の DB ドライバーを使用したいと考えています。実際、私はどのような実装を行うべきかを知っています: FactoryAdapter.get でアダプターのインスタンスを作成するときに、アダプターのコンストラクター メソッド内でドライバーを渡します。
私の問題は、その時点から、コードを実装する前に、どのテストを作成する必要があるか (失敗する必要があるか) がわからないことです。
testing - DDD (ドメイン層) でのテスト駆動型の使用
ドメイン層で TDD を開始する方法と、これが意味するのは、ドメイン モデルをテストする方法です。
何がテストされるべきですか?集合体または各エンティティ?
オニオン アーキテクチャのドメイン レイヤーをテストするための優れたプラクティスと戦略は何ですか?