EasyMock和Unitils相当于Mockito@InjectMocks



EasyMock或Unitils-Mock(不支持Unitils-EasyMok)中是否有任何技术可以将模拟直接注入被测类?

例如,在Mockito中,可以将mock直接注入类的成员变量中

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方法来支持测试中的注入。我是对的还是定向注射是可能的?

-感谢

也许这个线程已经死了,但是的,你现在可以使用带有标签@TestSubject、@Mock的EasyMock 3.2并使用@RunWith(EasyMockRunner.class)运行测试

http://henritremblay.blogspot.ie/2013/07/easymock-32-is-out.html

我不知道有任何注释可以让你用EasyMock做到这一点,然而,Spring有ReflectionTestUtils,它可以让你在不需要setter方法的情况下轻松地对私有字段进行注入。在我转到Mockito之前,我发现这门课非常宝贵。

Unitils有"Inject"模块,用于将模拟对象注入测试对象。看见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创建的Mock。

EasyMockSupport.injectMocks(剪切)

这里cut是要在其上注入mock的对象。有关更多信息,请参阅以下链接http://easymock.org/api/org/easymock/EasyMockSupport.html#injectMocks-java.lang.Object-

相关内容

  • 没有找到相关文章

最新更新