Весенний укол впрыска не работает, как задумано - PullRequest
0 голосов
/ 04 марта 2019

Я недавно начал писать 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");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...