首页 > 解决方案 > 如何使用继承在带有@RunWith(SpringRunner::class) 注释的测试类中使用 DataProviders 或其类似物

问题描述

我有一个测试班

@RunWith(SpringRunner::class)
@SpringBootTest
@ActiveProfiles("dev")
open class RegisterTest : AuthService() {
    @Test
    fun negative_login_register_test() {
        val requestUser = 
                createUserWithIncorrectEmail("fsdfs@dfsdfsd..com")
        val errorResponseUser: ErrorResponse = 
                registerIncorrectUser(requestUser)
        Assert.assertEquals("User was found in fraud detection system", 
                errorResponseUser.errorMessage)
        Assert.assertEquals("100010", errorResponseUser.errorCode)
    }
}

我需要在此测试中使用任何 dataProviders 或其类似物,但我的变体不起作用。

如您所见,我继承了 class AuthService。这是@Configuration类,我可以用它来存储我的DataProviderParameterized类和我的带有参数的伴随对象,并在我的测试类中使用它吗?喜欢:

@Configuration
@RunWith(Parameterized::class) // Or (DataProvider::class)
@ComponentScan(value = "ignore")
@ContextConfiguration(
    classes = arrayOf(YAMLConfig::class), 
    initializers = arrayOf(ConfigFileApplicationContextInitializer::class))
open class AuthService {
    companion object {
        fun incorrectEmails() = setOf(
                "Joe Smith <email@domain.com>",
                "email@domain")
    }
}

也许有人做到了?在 kotlin 中不是必需的,但在类中@Configuration@Run类中结合继承和不同的运行器。

PS我打算在一个班级进行很多测试?并且对于每个@Test我想要使用不同的 Dataprovider(或他的类似物)

标签: javaspringkotlinjunit4

解决方案


推荐阅读