1
作爲我的另一個問題的附錄:How to create Spock mocks outside of a specification class? - 是否有可能改變規範之外的Mocks行爲?如何更改Spock Mock的規範之外的行爲?
在我們的項目中,我們有很多在我們的規格代碼讀取這樣的:
someService.findById(SomeMother.SOME_OBJECT.id) >> SomeMother.SOME_OBJECT
someService.findById(_) >> {throw new IllegalArgumentException("No such object")}
我寧願有這樣的代碼
Helper.register(SomeMother.SOME_OBJECT).to(someService)
,所以我不必在任何地方複製嘲諷邏輯。但是,似乎我無法改變規範之外的Mock行爲,因爲Mock只是註冊了調用,而不是意識到我想改變它的行爲。有沒有辦法做到這一點,還是我必須一遍又一遍地重複我的初始化邏輯?