在EasyMock或Unitils Mock (不是Unitils支持的EasyMock)中有没有什么技术可以将这些Mock直接注入到被测类中?
例如。在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方法来支持来自测试的注入。我说的对吗?或者说定向注入是可能的?
-Thanks
发布于 2012-02-07 02:49:49
我不知道有什么注释可以让你用EasyMock做到这一点,但是,Spring有ReflectionTestUtils,它可以让你在不需要setter方法的情况下轻松地注入私有字段。在我转到Mockito之前,我发现这个类是无价的。
发布于 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
发布于 2012-07-14 02:36:20
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");
}
}https://stackoverflow.com/questions/9160443
复制相似问题