Я недавно начал писать JUnits, которые требуют методов и данных насмешки.Я смог сделать это для другого класса, и он работал, но не уверен, почему он не работает для текущего класса, который я тестирую.
По сути, я пытаюсь это сделать.1. Создайте ложный класс для класса / метода, для которого мне нужно смоделировать данные.2. Вставьте его в класс, который я тестирую, через context.xml 3. Когда метод вызывается в классе, который я тестирую, он должен быть переопределенным
public abstract class Service {
public string methodA(String x, String y, String z) {
return x;
}
}
.
public class SchoolService extends Service{
public String methodB(String input) {
String data = methodA("Test", "Test", "Test");
return data;
}
}
.
public class MockService extends SchoolService{
@Override
public String methodA(String x, String y, String z) {
return "OVERRIDE";
}
}
.
context.xml
<bean id="SchoolService" class="com.xxx.xxxx.xxx.SchoolService" scope="prototype">
<property name="SchoolService" ref="MockService"/>
</bean>
<bean id="MockService" class="com.xxx.xxxx.xxx.MockService"/>
Если это работает так, как я намереваюсь сделать, тогда, когда methodA вызывается внутри MethodB, он должен возвратить «OVERRIDE» вместо x.
Я написал этот JUnit так же, как и для другого класса, но почему-то он работает не так.Я подозреваю, что это из-за того, что это метод суперкласса, но не уверен, как я могу это исправить.
edit: добавление моего тестового класса
public class SchoolServiceTest {
SchoolService ss;
@Test
public string testSchoolService() {
return ss.methodB("Test");
}
}