問題タブ [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.
ruby-on-rails - レールの部分ビューをスタンドアロンでテストする
標準的なRails 2.1プロジェクトで Test/Unit を使用しています。特定のコントローラー/アクションから分離して部分ビューをテストできるようにしたいと考えています。
ZenTest の Test::Rails::ViewTestCaseが役立つように見えましたが、view_test http://www.continuousthinking.com/tags/view_testと同様に機能しませんでした。
Google が見つけたもののほとんどはかなり古くなっているように見えるので、Rails 2.1 では実際には機能しないと思います。
これについての助けは大歓迎です。
ありがとう、ローランド
tdd - 「モックイスト」または「クラシック」TDD を実践する必要がありますか?
Martin Fowler のMocks Aren't Stubsを読みました (そして読み直しました) 。その中で、彼は TDD への 2 つの異なるアプローチを定義しています: "Classical" と "Mockist"です。彼は、「それで、私は古典主義者または模倣者であるべきですか?」という質問に答えようとしますが、「おもちゃ以外のもの」で模倣者の TDD を試したことがないことを認めています。そこで、ここで質問しようと思いました。良い答えは、Fowler の主張を繰り返したり (できればもっと明確に)、Fowler が最後に 2007 年 1 月にエッセイを更新して以来、彼が思いつかなかった議論や他の人が思いついた議論を追加するかもしれません.
tdd - 「モックイスト」TDD プラクティショナーとして、テスト対象のメソッドと同じクラスの他のメソッドをモックする必要がありますか?
Martin Fowler のMocks Aren't Stubsを読んだ後、私は「モック主義者」のやり方で TDD を実践してきたことに気付きました。
しかし、モッキングをやりすぎることができるかどうかは、モッキングTDDでも疑問に思っています。
Python スタイルの疑似コードで更新された例を次に示します。
confirm_or_create_connection() メソッドは、サーバーへの接続を作成します。
これに似たメソッドを 2 つのテストでテストしましたが、どちらも confirm_or_create_connection() と sync() をモックしています (両方とも同じクラスのメソッドですが)。1 つのテストでは、モック confirm_or_create_connection() は True を返し、テストは sync() が呼び出されたことを確認します。別のテストでは、モック confirm_or_create_connection() は False を返し、テストは sync() が呼び出されなかったことを確認します。
これは合理的ですか?または、confirm_or_create_connection() と sync() が呼び出すオブジェクトをモックする必要がありますか? (すでにこれを行っているこれらの方法の両方の他のテストがあります。)
代わりに「古典的な」TDD を実践すべきだと説明して、質問に答えないでください。これは、別の質問に対する答えです。モックストまたは従来の TDD を実践する必要がありますか?
java - 最初にテストに失敗した後にjunitテストを停止する方法
テストが失敗した後に実行中のjunitテストを停止させる方法はありますか?
oop - オブジェクトモデルだけを設計する場合、どのような手法を使用しますか?
したがって、ドメインモデルを構築することは、チームとしてアプローチするときに最もよく起こると私が思うことであることは間違いありません。モデリングセッションには、技術的ではなく「ビジネス」のメンバーである誰かを巻き込むことさえあります。適切な人を部屋に入れてホワイトボードに物を打ち込むと、多くのことがすばやく完了します。しかし、あなたがその贅沢を持っていない時代はどうですか?複雑なドメインモデルを単独で構築する必要がある場合はどうでしょうか。私はこの1か月ほどこれを行っており、次のことを行っています。
- 名詞の識別から始めて、Class-Role-Collaborationsを使用して関係を分析します
- モデル、パーティなどを改良するために使用できる分析パターンを探します。
- 基本を理解したらすぐに、IDEを無効にして、XUnitテストの作成を開始し、モデルが必要なことを実行できることを示します。
これらの手法はうまく機能しましたが、真の共同作業ほど効率的かどうかはわかりません。概念がxまたはyの要件に違反していることに後で気付くだけで、その概念に夢中になるのは簡単だと思います。オブジェクト/ドメインモデルがターゲットに確実に収まるようにするために、単独で作業するときにどのような手法を使用しましたか?
unit-testing - クイック Rhinomocks ヘルプ
誰かがこのコードを見て、それが機能しない明らかな理由があるかどうか教えてもらえますか? コード内で service.getResponse が呼び出されると、モッキング フレームワークは指定したオブジェクトではなく、null のみを返します。
iphone - iPhoneネイティブアプリのテスト駆動設計
私は iPhone SDK を試していて、Dr. Nic の rbiPhoneTest プロジェクトで TDD を行っています。iPhone/Cocoa 用のこのフレームワークまたはその他のテスト フレームワークを使用して、成功した人は何人いるのでしょうか? さらに重要なのは、独自のバイナリ リクエスト/レスポンス プロトコルをアサートする最善の方法を知りたいということです。アイデアは、ネットワーク経由でバイナリ リクエストを送信し、バイナリ レスポンスを受信することです。リクエストとレスポンスは、byte and'ing and or'ing を使用して作成されます。ゴールデン コピー パターンを使用してリクエストをテストしています。これが私がこれまでに持っているものです。私はObjective CとRubyの両方に慣れていないので、笑わないでください。
c# - 単体テスト中にデータ構造の内部状態を設定するにはどうすればよいですか?
私は C# (フィボナッチ ヒープを使用した優先キュー) でデータ構造を作成しており、それをまったく新しい TDD の学習体験として使用しようとしています。
1 つのユニットの失敗が複数のテストの失敗と混同しないように、各テストはクラスの 1 つの部分のみをテストする必要があることは理解していますが、データ構造の状態が重要な場合にこれを行う方法がわかりません。テスト。
例えば、
このテストは、 または どちらEnqueue
かが壊れた場合にPeek
壊れます。
基礎となるデータ構造のヒープをテストで手動でセットアップできると考えていましたが、実装を世界に公開せずにそれを行う方法がわかりません。
これを行うより良い方法はありますか?他の部分に頼っても大丈夫ですか?
簡単にSetUp
するために省略しました。
unit-testing - 単体テストの保守負担の管理
コーディングテスト-最初に、私のコードのおそらく3/4が単体テストであることがわかりました。私が本当に極端で、失敗した単体テストを修正する以外にコード行を記述しなかった場合、この比率はさらに高くなります。これらすべての単体テストを維持すると、コードの変更に大きな慣性が加わります。早い段階で、私はそれを吸い上げて修正します。プレッシャーがあるとすぐに、私はbroken_unit_tests
「時間があるときに」再訪するためのディレクトリに行き着きます。デザインが結晶化する前に、TDDが高カバレッジを開始するのが早すぎるように感じます。
このジレンマから抜け出し、私が想定しているように変化する要件を歓迎し始めるにはどうすればよいですか?
tdd - 重要なアプリケーションでTDDをどのように実行しますか?
私はTDDをテーマにした本やウェブサイトをたくさん読んだことがありますが、それらはすべて、特にケントベックの本で非常に理にかなっています。しかし、自分でTDDをやろうとすると、どうやって始めたらいいのかとキーボードを見つめています。使用しているプロセスはありますか?あなたの思考プロセスは何ですか?最初のテストをどのように特定しますか?
この主題に関する本の大部分は、TDDとは何かを説明するのに優れた仕事をしていますが、実際の重要なアプリケーションでTDDを実践する方法については説明していません。TDDはどのように行いますか?