当前位置: 首页 > 知识库问答 >
问题:

在Junit5中使用@ParameterizedTest时如何使用@Autowire

羊昊苍
2023-03-14
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);
      ...
    }
...

共有1个答案

籍弘伟
2023-03-14

Spring Boot 1.5.x依赖于Spring Framework 4.3.x,但后者不提供对JUnit Jupiter(又名JUnit 5)的内置支持。

因此,如果您想将Spring Framework 4.3.x与JUnit Jupiter一起使用,唯一的选择就是使用我的spring-test-junit5项目。

一旦您在spring-test-junit5上配置了依赖项,您就可以访问JUnit Jupiter的springextension。这将替换JUnit4的SpringRunner

@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);
        // ...
    }
 类似资料:
  • 我一直在查看JUnit5中参数化测试的示例(我是新手),但没有找到我想要的(除非我误解了如何使用它们)。 我遇到的所有示例都使用了诸如字符串、csv文件或methodSource之类的基本类型,但这些类型似乎都不适合我要做的事情。 如有任何帮助,不胜感激。

  • 问题内容: 如何在Mockito和JUnit 5中使用注入? 在JUnit4中,我可以只使用Annotation。在JUnit5中没有注释吗? 问题答案: 有多种使用Mockito的方法-我将一一介绍。 手动地 无论JUnit版本是什么(或测试框架),都可以使用Works手动创建模拟。 基于注释 使用@Mock -annotation和相应的调用 来创建嘲笑的作品无论JUnit版本(或测试框架,对

  • 如何使用Mockito和JUnit 5的注射? 在JUnit4中,我可以只使用注释。JUnit5中没有注释吗?

  • 我发现Junit5从5.3版本开始就支持并行性,但我找不到任何关于如何使用csv源代码运行并行测试的参考。你有什么建议吗?

  • 在成功运行JUnit4测试后,我试图将JUnit5与Gradle一起使用。 而我唯一的测试包含 我觉得这很奇怪! 我的生成文件是 我的文件夹结构是,使用包, 在我使用的IntelliJ2017.1.3中,模块结构如下所示 因为Gradle现在想要源代码和测试在他们自己的包中。 使用gradle在intellij中从JUnit4升级到JUnit5 链接回到上面的问题,并链接到这个Jetbrains博

  • 有一个只有exports子句的src/main/java/module-info.java。 有一个src/test/java/example/sometest/addertest,它具有: 到目前为止还不错。现在我使用@ExtendWith注释。 哪里 现在mvn测试给出错误 [警告].../AdderTest.java:[9,2]未导出模块中的类org.junit.jupiter.api.ex