問題タブ [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.

0 投票する
9 に答える
776 参照

unit-testing - TDDインターフェースの変更の処理

TDDを使い始めました。以前の質問で述べたように、最大​​の難しさはインターフェースの変更を処理することです。要件の変化に応じて、テストケースへの影響をどのように減らしますか?

0 投票する
8 に答える
425 参照

.net - .NET 単体テストを作成するにはどうすればよいですか?

.NET で単体テストを作成するにはどうすればよいですか?

具体的には Visual Studio 2005 ですか?

0 投票する
3 に答える
4719 参照

c# - TDD と TcpClient のモックアウト

人々は TcpClient (または TcpClient のようなもの) をモックアウトするためにどのようにアプローチしますか?

TcpClient を受け取るサービスがあります。それをもっとモック可能な何かでラップする必要がありますか?これにどのようにアプローチすればよいですか?

0 投票する
5 に答える
489 参照

database-design - TDDD (テスト駆動型データベース開発) にはどのようなツールが利用できますか?

約 1 年前、私は Scott Ambler のRefactoring Databases: Evolutionary Database Designを取り上げました。私は、TDD でコードを開発できるのと同じように、データベースを (少なくとも) 単体テストでカバーするか、スキーマに変更を加える前にデータベース テストを作成して、データベースの作業を行う必要があるという考えに納得しました。 TDDスタイルでも。

私はこのアイデアが本当に好きで、これをしばらくの間手動で行ってきました (OK、時々実行します)。たまたまデータベースに接続し、その構造を特定のスキーマ ファイルに対してチェックする通常の単体テストを作成するだけです。しかし、このプロセスを自動化するのに役立つ優れたデータベース変更管理ツールキットは見つかりませんでした。誰か知っていますか?

0 投票する
3 に答える
412 参照

tdd - NUnit はどうなりましたか?

なぜこのプロジェクトはもう維持されていないのですか? 私はこのアプリが大好きですが、更新しないことは、すべての .Net 開発者に対する犯罪のように思えます。将来のリリースの可能性を考慮して、追加したい項目がいくつかあります。

誰かが私が知らないことを共有できますか?

0 投票する
2 に答える
769 参照

tdd - 継続的インテグレーションで TDD をどのように処理しますか?

さまざまな新機能を含むユーザー ストーリーを実装し、コード ベースに複雑さを加えていると想像してください。既存のコードは十分にカバーされており、インターフェースを決定したところです。テストから機能の実装を開始しています。

これで、要件に基づいたかなり複雑なテスト ケースができましたが、実装は、SCM の完全に機能するコードにコミットでき、多くのテストが (当然のことながら) 失敗する時点にはほど遠い状態です。

継続的インテグレーションでは、可能であればすべてのビルドをグリーンにする必要があるため、ビルドを壊してしまうのでコミットしないでください。しかし、 「暗くなる」べきではなく、そのような量のコードを自分で保持するべきではありません...

このような状況で推奨される手順は何ですか?

0 投票する
5 に答える
6046 参照

unit-testing - TDD で単体テストをどのように編成しますか?

私は TDD を行っていますが、単体テストの編成はかなり緩いものでした。私は、次のストーリーまたは機能のチャンクを表すファイルから始めて、それを機能させるためのすべての単体テストを作成する傾向があります。

もちろん、新しいクラスを導入する場合は、通常、そのクラス用に個別の単体テスト モジュールまたはファイルを作成しますが、テスト自体をより高いレベルの構造に編成することはしません。その結果、私はコードを速く書くことができ、実際のプログラムはかなり適切に構造化されていると思いますが、単体テスト自体は「乱雑」です。特に、それらの構造は発生過程の系統発生を再現する傾向があります。ときどき、コードの怠惰をテストの怠惰と交換しているように自分自身を見ていることがあります。

これはどれほど大きな問題ですか?単体テストを継続的にリファクタリングおよび再編成して、全体的な構造を改善しようとしているのは誰ですか? これに関するヒントはありますか?テストの全体的な構造はどのように見えるべきか。

(ここで尋ねた「関数ごとのアサーションの数」の質問はあまりしていないことに注意してください:関数/メソッドごとにいくつのユニットテストを書く必要がありますか?私は全体像について話している。)

0 投票する
17 に答える
98368 参照

unit-testing - 単体テストの深さは?

TDD について私が発見したことは、テストをセットアップするのに時間がかかり、自然に怠け者である私は常にできるだけ少ないコードを書きたいということです。私が最初に行うことは、コンストラクターがすべてのプロパティを設定したことをテストすることですが、これはやり過ぎですか?

私の質問は、単体テストをどのレベルの粒度で作成するのですか?

..そして、テストが多すぎる場合はありますか?

0 投票する
21 に答える
5198 参照

tdd - 個人の開発者が TDD を使用すべき理由は何ですか?

私は多くの経験を持つ契約プログラマーです。私は、クライアントに雇われて、何らかの形のソフトウェア プロジェクトを自分で、通常は何もないところから行うことに慣れています。これは、ほとんどの場合、白紙の状態であることを意味します。すぐに始められるように、開発したライブラリを持ち込むことができますが、それらは常にオプションです。(そして、契約で適切な IP 条項を取得することに依存します) 多くの場合、ハードウェアプラットフォームを指定または設計することさえできます... したがって、ここでは深刻な自由について話しています。

特定のコードの自動化されたテストを構築するための用途を見ることができます: 自明以上の機能を持つライブラリ、多数の参照を持つコア機能など。そのコードを自動的にテストして、コードを壊していないことがわかるようにすることは、ますます価値があります。

しかし、私の状況では、それ以上のことを正当化するのは難しいと思います. 役に立つとわかったものは採用しますが、やみくもにフォローするつもりはありません。

「メンテナンス」で行うことの多くは、実際には小さな設計変更です。この場合、テストによって何も救われなかったので、テストも変更する必要があります。反復性の高い、スタブ優先の設計アプローチは、私にとって非常にうまく機能します。より大規模なテストで実際にそれほど多くの時間を節約できるとは思えません。

趣味のプロジェクトを正当化するのはさらに困難です... 通常、週末から 1 か月程度の期間のものです。エッジ ケースのバグが問題になることはめったにありません。

このような質問を読んで、最も投票された回答は、その投稿者の経験/意見では、5人未満の人がいる場合、TDDは実際に時間を無駄にしていると言っているようです(TDDの一定レベルの能力/経験を前提としても)。ただし、それはメンテナンスではなく、初期開発時間をカバーしているようです。プロジェクトのライフ サイクル全体で TDD がどのように機能するかは明確ではありません。

TDD は、業界全体の製品の品質を向上させるという価値ある目標に向けた良い一歩になると思います。しかし、理想主義だけでは、もはや私をやる気にさせる効果はありません。

TDD は、大規模なチーム、または信頼できないプログラマーが少なくとも 1 人含まれる任意の規模のチームで良いアプローチになると思いますそれは私の質問ではありません。

実績のある唯一の開発者が TDD を採用するのはなぜですか?

単独の開発者や非常に小規模なチームに焦点を当てた TDD で (正式に行われたかどうかにかかわらず) あらゆる種類の指標について聞きたいです。

それができない場合は、あなたの個人的な経験談もいいでしょう。:)

裏付けとなる経験のない意見を述べることは避けてください。これをイデオロギー戦争にしないようにしましょう。また、より大きな雇用オプションの引数をスキップします。 これは単に効率の問題です。

0 投票する
3 に答える
1056 参照

tdd - TDDに関する研究

ノースカロライナ州立大学で TDD に関する研究が行われていることは知っています。彼らは「業界におけるテスト駆動開発の初期調査」という論文を発表しました。NCSU によるその他の出版物は、こちらでご覧いただけます

このトピックに関する他の優れた出版物を教えてもらえますか?