У меня есть метод в классе, который вызывает побочные эффекты для параметра метода:
public void SideEffectsClass {
public void doSomethingWithSideEffects(List<Object> list) {
// do something to the list
}
}
И этот класс проверяется:
public void ClassUnderTest() {
public List<Object> execute() {
List<Object> results = new ArrayList<Object>();
new SideEffectsClass().doSomethingWithSideEffects(results);
return results;
}
}
Мой метод испытаний с использованием JMockit:
@Test
public void test() throws Exception
{
// arrange
new Expectations()
{
SideEffectsClass sideEffects;
{
new SideEffectsClass();
sideEffects.doSomethingWithSideEffects((List<Object>) any);
// I want to simulate that the List<Object> parameter has changed
// (has more elements, less elements, etc. after this method is called
}
};
// act
ClassUnderTest testClass = new ClassUnderTest();
List<Object> results = testClass.execute();
// assert
Assert.assertEquals(myExpectedResults, results);
}