首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与Mockito @ InjectMocks等效的EasyMock和Unitils

与Mockito @ InjectMocks等效的EasyMock和Unitils
EN

Stack Overflow用户
提问于 2012-02-06 20:56:36
回答 4查看 6K关注 0票数 5

在EasyMock或Unitils Mock (不是Unitils支持的EasyMock)中有没有什么技术可以将这些Mock直接注入到被测类中?

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

代码语言:javascript
复制
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方法来支持来自测试的注入。我说的对吗?或者说定向注入是可能的?

-Thanks

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-07 02:49:49

我不知道有什么注释可以让你用EasyMock做到这一点,但是,Spring有ReflectionTestUtils,它可以让你在不需要setter方法的情况下轻松地注入私有字段。在我转到Mockito之前,我发现这个类是无价的。

票数 5
EN

Stack Overflow用户

发布于 2014-03-22 00:17:32

也许这个线程已经死了,但是是的,你现在可以使用带有@TestSubject,@ EasyMock的标签的RunWith 3.2来做这件事,并用@RunWith(EasyMockRunner.class)运行测试。看看这篇文章写得很好(不是我写的!)示例:

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

票数 6
EN

Stack Overflow用户

发布于 2012-07-14 02:36:20

Unitils具有"Inject“模块,用于将模拟对象注入到测试对象中。详情请参见http://unitils.org/tutorial-inject.html

例如:

代码语言:javascript
复制
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"); 
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9160443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档