Так Скажем, я некоторый класс определен:EasyMock конструктор со многими аргументами
MyClass {
private A _a;
private B _b;
private C _c;
MyClass(A a, B b, C c) {
_a = a;
_b = b;
_c = c;
}
public someMethodIDontCareAbout() {
_b.doSomething();
_c.doSomething();
}
public someMethodIWantToTest() {
_a.doSomething();
}
}
Теперь, позволяет сказать, что я только хочу, чтобы проверить someMethodIWantToTest(), но я не забочусь о других методах. Я бы предпочёл не создавать новый объект MyClass и не издеваться над классами B и C. Конструктор требует их, но я не могу использовать их, так как мой метод, который я хочу проверить, использует только A.
Есть ли способ в простой макет, чтобы сказать EasyMock.createMockBuilder(MyClass.class).withConstructor(EasyMock.createNiceMock(A.class)).createMock();
Нет конструктора, который принимает только класс A, но это все, что я хочу. Нет ли простого способа сделать это без указания B и C? В идеале это создало бы niceMocks для всех других аргументов в конструкторе, которого я не хочу.
Вы не можете использовать значения «null»? – Keppil
Да, но если у вас есть весенние бобы, для конструктора может быть 30 аргументов, и это просто раздражает, чтобы выровнять все аргументы и поставить 28 нулей, когда мне нужно только 2 аргумента. Я надеялся на некоторую фантазию EasyMock. – REMOSEWA