43

私はmockitoが初めてです。

スタブといつの違いを知る必要があります

      1. stub(cpproxy.getBinList()).toReturn(gettestbins());
      2. when(cpproxy.getBinList()).thenReturn(gettestbins());

これら2つの違いは何ですか?

4

1 に答える 1

78

実際、それらは技術的に同じです。Mockito が最初に作成されたとき、私たちはスタブについて話していたので、語彙はその考えに従いました。後になって、専門用語よりも相互作用で考えるほうがよいと考えられたため、語彙はwhen ... then ...スタイルに従いました。この語彙の変化は、オブジェクト間の相互作用メッセージについて人々が考えるのに役立ちます。オブジェクト指向言語で最も興味深いアイデア (メッセージ パッシング) はどれですか ( Alan Kay を引用)。

最近では、テスト アプローチは (Dan North による) Behavior Driven Development に進化しました。これはほとんど同じですが、設計時の動作にさらに重点を置いています。その考えを反映するために、人々はその変化を反映する API を提供するよう Mockito に依頼しました。そのため、 given ... will ... style fromも使用しますBDDMockito

given(the_type.performs_that()).willReturn(something)

これは、オブジェクトの設計を推進するためにテストを使用しているため、現在私が好む語彙です。

于 2013-02-06T19:25:53.350 に答える