2012-02-26 29 views
2

我嘗試使用jMock創建一個模擬對象注入mock對象。 模擬對象看起來很好 - 但事情是它沒有注入到被測試類。 這裏是我的代碼:使用JMock的

@RunWith(JMock.class) 
public class FeederFilterTest { 

private TestedClass service; 

@Mock 
private TheMockedInterface mock; 
    ... 
} 

@Service 
public class TestedClass { 

@Autowired 
private TheMockedInterface interface; 
... 
    } 

正如我所說的 - 如預期的模仿對象被創建 - 但是當我調用使用該TheMockInterfaceTestClass的方法 - 我得到一個NullPointerException。

我知道,擁有的Mockito @InjectMocks - 沒有JMock的有類似的東西嗎?

回答

2

JMock的不攔截自動創建實例。這是一個設計選擇。我們認爲內部創建的對象不應該太複雜以至於需要嘲弄。任何應該傳入的東西都應該被傳入,並且依賴關係被明確表示出來。還有其他的框架,會做這樣的聰明的事情,我敢肯定有人會很快在這裏發佈一個鏈接:)