Junit 模拟bean并在上下文级别定义其行为

Junit 模拟bean并在上下文级别定义其行为,junit,easymock,Junit,Easymock,我的配置中很少有模拟bean,它们是许多其他bean的依赖项。 我想定义它的行为,无论其输入如何,在任何方法调用时都返回null。 我用的是easyMock TestClass { @Autowired ActualClass ac; public Test() { ac.dosometing(); } } ActualClass { @Autowired MockedClass mockedObject; public dosomething() { mockedObejct.s

我的配置中很少有模拟bean,它们是许多其他bean的依赖项。 我想定义它的行为,无论其输入如何,在任何方法调用时都返回null。 我用的是easyMock

TestClass
{
@Autowired 
ActualClass ac;

public Test()
{
ac.dosometing();
}
}


ActualClass
{

@Autowired
MockedClass mockedObject;

public dosomething()
{

mockedObejct.someMethod(); //i want this to be returned null in any  scenario for the test cases
}

}
}
基本上:

MockedClass mock = createNiceMock(MockedClass.class);
replay(mock);
ac.setMockedClass(mock);
使用JUnit规则和注释的现代版本将是

public class MyTest
{
    @Rule
    public EasyMockRule rule = new EasyMockRule(this);

    @Mock(type=MockType.NICE)
    MockedClass mockedObject;

    @TestSubject
    ActualClass ac = new ActualClass();

    @Test
    public void test() {
        ac.doSomething();
    }
}

class ActualClass {

    private MockedClass mockedObject;

    public void doSomething()  {
        mockedObject.someMethod();
    }

}

class MockedClass {
    public void someMethod() {}
}

谢谢我用手动注入模拟对象的老方法。我也要试试这个。这将大大减少我的努力。