0
생성자에서 제공되는 인수에 따라 다른 값을 반환하는 mocked 인스턴스 목록을 만드는 방법을 찾고 있습니다.MockUp 인스턴스 목록
public interface ValueObject {
int getValueInt();
String getValueString();
}
@RunWith(JMockit.class)
public class DemoTest {
@Test
public void testDemo() throws Exception {
class ValueObjectMock extends MockUp<ValueObject> {
private final int valueInt;
private final String valueString;
ValueObjectMock(int valueInt, String valueString) {
this.valueInt = valueInt;
this.valueString = valueString;
}
@Mock
int getValueInt() {
return valueInt;
}
@Mock
String getValueString() {
return valueString;
}
}
final List<ValueObject> objects = new LinkedList<ValueObject>();
for (int i = 0; i < 10000; i++) {
objects.add(new ValueObjectMock(i, String.valueOf(i)).getMockInstance());
}
assertTrue(objects.get(5).getValueString().equals("5"));
}
}
이렇게하면 테스트는 약 20 분 실행됩니다. 다른 모의의 목록을 만드는 또 다른 방법이 있습니까?
추신 : 인터페이스에 가짜 구현을 사용해야한다고 생각합니다.
인터페이스를 구현하는 가짜 개체를 사용하여 해결되었습니다.
실물 크기 클래스의 각 인스턴스화는 인터페이스에 대한 새로운 조롱 된 구현 클래스를 생성합니다. 그렇기 때문에 수천 번 할 수있는 저렴한 작업은 아닙니다. 그러나 실제로 이것에 대한 필요성이 있습니까? 이 경우 인터페이스를 구현하는 간단한 클래스를 만드는 것이 더 쉽습니다. –
나는이 길을 고려하고있다. 그러나 조롱이 도움이 될지 궁금해졌습니다. 그러나 인터페이스를 변경하면 가짜 오브젝트 변경이 발생할 수도 있습니다. 인터페이스가 다른 팀에 의해 관리 될 때 사소하지 않습니다. 아마도 다른 팀이 테스트 목적으로 가짜 개체를 관리해야 할 것입니다. –