最近,我一直在閱讀很多關於合同和協作測試的文章(主要來自J.B. Rainsberger)。爲了進入它,我開始了一個小項目。合同測試是否需要暗示存根?
從我的理解,合同測試的責任是確保實施尊重其接口固有合同。換句話說,它鼓勵Liskov替代原則。
嘲諷對象合作者基本上都是關於對對象進行假設。現在,如果這些假設變化會發生什麼?如果我用嘲笑的Mockito這樣的(這涉及到同樣的事情存根)的合作者:
when(collaborator.doSomething(someArgument)).thenReturn(someValue);
我將無法看到的變化,當我將修改合作者接口(即其合同)。
所以,這裏是我的問題:當僞造一個向被測系統提供間接輸入的合作者時,應該使用存根來防止未被注意的界面/合同改變?
這裏是我已經查了一些鏈接:
removing-the-integration-test-scam-understanding-collaboration-and-contract
writing contract tests in java differently
我希望我足夠清楚,如果沒有,我會盡我所能,使這個更透明。感謝你們所有人提前。
我相信這比程序員更適合於閱讀他們的[faq](http://programmers.stackexchange.com/faq)。 – poplitea