質問

前を拝読させていただきました 疑似なスタブ 記事によるマルタンファウラーは、いつ、どのようにしていなんて思っても外部の依存関係についてより複雑ていきたいと思いますのでお願い:

何が最善の方法で使用されるユニットの実験をしていますか?

るので、常に模擬枠組みを自動的に模擬の依存関係の方法が試されている、またはお好みで使用単純な機構のためのインスタンス試験スタブ?

役に立ちましたか?

解決

としてのマントラがこれをもって最も単純なものである。'

  1. れば偽の授業では、この仕事でもちょこっとお得します。
  2. が必要な場合はインターフェースを複数の方法に思は、模擬の枠組み

の使用は避け疑似 常に での試験に欠点を持つ。テストで複雑な知識の方法によって呼び出され実施の場合、嘲笑インタフェースまたは実装が変わります---テストです。それはフランス語が堪能な方、是非ご過ごす時間って試験を行なっておSUT。 試験は不適切に親しみを実施します。
での使用が判断..う疑似がで救っ書の更新を偽のクラスn>>3。

更新 エピローグ/審議:
(Toran Billups例えば、mockistます。下記参照)
こんにちはDougどのように思いまを超越別の聖戦-クラシックTDDers vs Mockist TDDers.しようとして所属することができます。

  • ていただく場合試験#101Test_ExportProductListびを見たいのかを追加する必要があり新paramにIProductService.GetProducts().したいと思っているならこの試験です。を使用したいのリファクタリングツールの更新を他のすべての参照です。今では、すべてのmockist試験を呼び出しこの委員は、現在ブロー。その後しなくてはならなくなり、更新すべてのこれらの試験-。なぜShouldPopulateProductsListOnViewloadwhenpostbackisfalse fail?したのでコードが割れてますよ?るのではなく、試験破となりました。をいっそう引き立てを 一つの試験に失敗=1の場所で固定.嘲笑うfreqに反するものであるということ。うスタブです。またfake_class.GetProducts()..必ず一つの場所の変更の代わりにショットガンの手術で複数の期待されます。最終的にこのスタイル..また共通のユーティリティメソッドMockHelper.SetupExpectForGetProducts()-うものです。..できることはほとんどない.
  • される場合は白いストリップ試験名、テストは読み出します。多くの配管コードのための枠組みを模擬皮、実際の試験を行っています。
  • する必要があるように、特定の趣の嘲笑う枠組み

他のヒント

私は一般的に好みで使用疑似で期待に応えます。ときにメソッドの呼び出しを、スタブを返すの値であり、一般的にできる値です。でも、メソッドの呼び出しに模擬ない戻り値の型関数が値を返すまで執行することを期待すチェックボックスをチェックの方法にしたものという。つまり、設定した場合、期待しないメソッドを呼び出し、例外がスローされます。きのと期待され、基本的には"このメソッドがないというかがった。 および反対側はtrue、お問い合わせいただいた場合の方法は、模擬なかったセット期待で例外をスローします、基本的には"こんにちは,どのように対応していまこのメソッドを呼び出すことだと思う。"

もんたいへの期待のあらゆる方法だけで嘲笑う枠組みできる"部分"疑似たような模擬/スタブハイブリッドにおいては、その期待に設定して施行され、他のメソッドの呼び出しはまりのようにスタブにするかを返します。

一つの有効な場所で利用スタブんなのものをご紹介試験へのレガシーコードです。Ru,キーワードだけで容易にスタブにより、サブクラスのクラスで試験によりリファクタリングすべてを嘲笑う簡単にでも可能です。

とこ---

の使用は避け疑似いでの試験に欠点を持つ。テストで複雑な知識の方法によって呼び出され実施の場合、英面に変わります---テストです。での使用が判断..<

---私は言った場合界面の変化を、私のテストでは、よりよい。でのポイントユニット検査は正確に試験の私のコードに存在する。

での最高の組み合わせを用いてご自身の判断を下しています。このガイドラインを使ってい:

  • いただきました場合、電話で外部コードの一部であるコードの予想(外向き)動作、試験を実施します。利用模擬.
  • 場合には、実装の詳細を外の世界になり、好みのスタブ.しかし:
  • 場合でも、その後の実装のコードが誤って行く周辺のスタブ、また通知その場合は、利用模擬.い結合テストコードでは気づかれるタブだけでは十分ではなく、試験ニーズの再ます。

第二種類の模擬するのに必要なよう。もうここはるかどうかをご利用のスタブやモック、場合によいカップルコードのよい仕様になっています。そこで用いるモックよりスタブがきカップリングに休憩時間にコードがなくな記述の試験と思っています。あるんじゃないでしょうかを残すコメントテストだけど、このように誰違うコードな違いは、試験です。

も、コードの香り、最後のリゾートがあります。だいこく、再考の書き方を試験までを実施。

なによりどのような試験きた、ということがあります。行っているのだとか挙動を試験するた動を模擬できることを確認の一部との相互作用dependancyが発生します。だからだの状態に基づく試験するたスタブでご確認の値が/etc

例えば、以下の試験においスタブのビューで確認できるプロパティ値を設定状態に基づく試験).その後、作動模擬のサービスクラスでできていることを確認し特定のメソッドが呼び出され、試験中(相互作用行動に基づく試験).

<TestMethod()> _
Public Sub Should_Populate_Products_List_OnViewLoad_When_PostBack_Is_False()
    mMockery = New MockRepository()
    mView = DirectCast(mMockery.Stub(Of IProductView)(), IProductView)
    mProductService = DirectCast(mMockery.DynamicMock(Of IProductService)(), IProductService)
    mPresenter = New ProductPresenter(mView, mProductService)
    Dim ProductList As New List(Of Product)()
    ProductList.Add(New Product())
    Using mMockery.Record()
        SetupResult.For(mView.PageIsPostBack).Return(False)
        Expect.Call(mProductService.GetProducts()).Return(ProductList).Repeat.Once()
    End Using
    Using mMockery.Playback()
        mPresenter.OnViewLoad()
    End Using
    'Verify that we hit the service dependency during the method when postback is false
    Assert.AreEqual(1, mView.Products.Count)
    mMockery.VerifyAll()
End Sub

ではない独自路線を貫いてい養前相互作用を考える役割そして、"関係性"です。場合にはオブジェクトと連携し、隣にはその仕事、その関係が証明しているインターフェイス)の候補者であり試験用疑似.場合にはオブジェクトが値オブジェクトのエリアを表示一部のエリアの行動、そして試験しました。見えないことに気づいた点の疑似していなくても(スタブ)です。そしてすべての始まりを整理から離れてます。

な議論することを考えてみ http://www.mockobjects.com/book

読むルKanies'ディスカッションのこの質問 このブログ.た参考文献 後からはJay分野 でもこの利用[aと同等のrubyの/モカ】stub_everythingはpreferrableの試験を強化するという引用分野の"最後の言葉"ふくしまでとして定義する模擬で定義するスタブがないを意味しなければなりません。疑似.このソフトの存在により、一般的に好みのスタブおよび使用疑似が必要です。"

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top