от
В настоящее время я использую SpringBoot1.5 и Junit5. Как я могу использовать @autowire для внедрения зависимостей при использовании аннотации @ParameterizedTest для параметрического тестирования, потому что мне нужно взаимодействовать с базой данных. Я пытаюсь использовать
TestContextManager testContextManager = new TestContextManager(getClass());
testContextManager.prepareTestInstance(this);
но это приведет к @операции будут недоступны. это мой код
@ExtendWith(MockitoExtension.class)
@RunWith(SpringRunner.class)
public abstract class AbstractUnitTest {
}

public class PatientFacadeTestParameterized extends AbstractUnitTest {
...
    @Autowired
    PatientFacade patientFacade;(is null)
...

    @Transactional
    @ParameterizedTest(name = "{index}: {0}")
    @YamlFileSource(resources = {"logistics/patient_facade.yaml"})
    public void testCreateAccountPhonePatienta(PatientFacadeData patientFacadeData) {
      ...
    patientFacade.createAccountPhonePatient(patientForm1);
      ...
    }
...
Я просто хочу использовать @ParameterizedTest, чтобы управлять своим входом.

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста подтвердите адрес электронной почты.

1 Ответ

0 голосов
от
Весна Загрузки 1.5.X зависит от весны рамках 4.3.х, но последний не обеспечивает встроенную поддержку для JUnit Юпитера (а.к.а. Вывод 5). Поэтому, если вы хотите использовать Spring Framework в 4.3.х на JUnit Юпитера, единственный вариант-это использовать мою весну-тест-junit5 проекта. Как только вы настроили зависимость от
spring, вы будете иметь доступ к SpringExtension
для JUnit Юпитера. Это заменяет
SpringRunner
для JUnit 4. Тогда вы должны быть в состоянии переписать свой тестовый класс В аналогично следующее. Я не могу дать вам точную рабочий пример, так как я не имею доступ к типам в проекте.
@ExtendWith(SpringExtension.class)
@ExtendWith(MockitoExtension.class)
public class PatientFacadeTestParameterized {

    @Autowired
    PatientFacade patientFacade;

    @Transactional
    @ParameterizedTest(name = "{index}: {0}")
    @YamlFileSource(resources = {"logistics/patient_facade.yaml"})
    public void testCreateAccountPhonePatienta(PatientFacadeData patientFacadeData) {
        // ...
        patientFacade.createAccountPhonePatient(patientForm1);
        // ...
    }
Что отвечает за инъекции
PatientFacadeData
в методе теста? Не
@YamlFileSource
позаботиться об этом? Кстати, вы должны практически никогда не нужно использовать
TestContextManager
непосредственно в ваших тестах. В
SpringRunner
и
SpringExtension
обрабатывать это для вас.
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...