Не удалось высмеять частный метод через jmockit

Помогите, этот макет не работает:

class ClassBeingTested {

 private AnotherClass anotherClass;

 public void someMethod() {
 int ans = anotherClass.targetMethod(5);
 // Use ans here
 }
}

//Мой тест

ClassBeingTested classObject;
AnotherClass anotherClassObject;

@Before 
public void setup() {
 // Initialize anotherClassObject here

 classObject = new ClassBeingTested(anotherClassObject);

 new NonStrictExpectations(anotherClassObject) {{
 invoke(anotherClassObject, "targetMethod", Integer.class); result = 100;
 }};
}

@Test
public void testSomeMethod() {
 classObject.someMethod();
}
2 ответа

Как насчет этого способа насмешек над JMockit?

import mockit.Injectable;
import mockit.Tested;
...


@Tested
ClassBeingTested classObject;
@Injectable
AnotherClass anotherClassObject;

@Before 
public void setup() {
 new Expectations() {{
 anotherClassObject.targetMethod(******); result = 100;
 }};
}

@Test
public void testSomeMethod() {
 classObject.someMethod();
}


Mocking работал, как только я заменил Integer.class с фактической ожидаемой стоимостью int.

new NonStrictExpectations(anotherClassObject) {{
 invoke(anotherClassObject, "targetMethod", 5); result = 100;
 }};

licensed under cc by-sa 3.0 with attribution.