[英]EasyMock and Unitils equivalent to Mockito @ InjectMocks
EasyMock或Unitils Mock(非Unitils支持的EasyMock)中是否有任何技術可以將模擬直接注入到被測試類中?
例如。 在Mockito中,可以將mocks直接注入類的成員變量中,
public class TimeTrackerTest {
@InjectMocks // Used to create an instance the CUT
private TimeTrackerBean cut;
@Mock // Used to create a Mock instance
EntityManager em;
@Before
public void injectMockEntityManager() {
MockitoAnnotations.initMocks(this); // Injects Mocks into CUT
}
@Test
...
}
這樣的事情可以用EasyMock或Unitils Mock完成嗎? 在easymock中,我們需要在CUT中使用單獨的setter方法來支持測試中的注入。 我是對的還是方向注射在某種程度上是可能的?
-謝謝
我不知道任何注釋可以讓你用EasyMock做到這一點,但是,Spring有ReflectionTestUtils ,它可以讓你輕松地對私有字段進行注入而無需setter方法。 在我切換到Mockito之前,我發現這個課程非常寶貴。
也許這個線程已經死了但是你現在可以使用帶有@TestSubject,@Mock標簽的EasyMock 3.2以及使用@RunWith(EasyMockRunner.class)運行測試來實現這一點。 看得好(不是我!)示例:
http://henritremblay.blogspot.ie/2013/07/easymock-32-is-out.html
Unitils具有“注入”模塊,用於將模擬對象注入到測試對象中。 有關詳細信息,請參見http://unitils.org/tutorial-inject.html 。
例如:
public class MyServiceTest extends UnitilsJUnit4
{
@TestedObject MyService myService;
@InjectIntoByType Mock<MyDao> myDao;
@Test
public void myTestMethod()
{
myDao.returns("something").getSomething();
myService.doService();
myDao.assertInvoked().storeSomething("something");
}
}
以下內容將有助於在其字段上注入使用@Mock創建的模擬。
EasyMockSupport.injectMocks(切口);
這里cut是注入mock的對象。有關更多信息,請參閱以下鏈接http://easymock.org/api/org/easymock/EasyMockSupport.html#injectMocks-java.lang.Object-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.