noclassdeffounderror在运行时对kotest单元测试抛出

smdncfj3  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(301)

我明白了 NoClassDefFoundError 在运行时(通过intellij或via运行测试 gradlew test )
这是我的简单测试(kotlin和kotest的新功能)

  1. class AuthenticationValidatorServiceTest : StringSpec({
  2. val userRepository = mockk<UserRepository>()
  3. val userTypeRepository = mockk<UserTypeRepository>()
  4. val accessTokenRepository = mockk<AccessTokenRepository>()
  5. lateinit var service: AuthenticationValidatorService
  6. beforeTest {
  7. service = AuthenticationValidatorService(userRepository, userTypeRepository, accessTokenRepository)
  8. }
  9. "Should throw ResourceNotFoundException" {
  10. shouldThrow<ResourceNotFoundException> {
  11. val userId = UUID.randomUUID()
  12. every { userRepository.findById(userId) } returns Optional.empty()
  13. service.validateUser(userId)
  14. }
  15. }
  16. })

在我的gradle文件中是否有我错过的设置?我刚刚添加了这个

  1. tasks.withType(Test) {
  2. useJUnitPlatform()
  3. }

获取这些错误

  1. > Task :test
  2. WARNING: ExecutionInvokerPatcher failed: java.lang.ClassNotFoundException: org.junit.jupiter.engine.descriptor.ClassTestDescriptor
  3. Expected exception lock.http.exception.ResourceNotFoundException but a NoClassDefFoundError was thrown instead.
  4. java.lang.AssertionError: Expected exception lock.http.exception.ResourceNotFoundException but a NoClassDefFoundError was thrown instead.
  5. at lock.http.service.AuthenticationValidatorServiceTest$1$2.invokeSuspend(AuthenticationValidatorServiceTest.kt:54)
  6. at lock.http.service.AuthenticationValidatorServiceTest$1$2.invoke(AuthenticationValidatorServiceTest.kt)
  7. at lock.http.service.AuthenticationValidatorServiceTest$1$2.invoke(AuthenticationValidatorServiceTest.kt)
  8. at io.kotest.core.spec.style.scopes.StringSpecRootContext$invoke$1.invokeSuspend(StringSpecRootContext.kt:66)
  9. at io.kotest.core.spec.style.scopes.StringSpecRootContext$invoke$1.invoke(StringSpecRootContext.kt)
  10. at io.kotest.core.spec.style.scopes.StringSpecRootContext$invoke$1.invoke(StringSpecRootContext.kt)
  11. at io.kotest.core.internal.ExecutionsKt$executeWithBehaviours$2$1.invokeSuspend(executions.kt:13)
  12. at io.kotest.core.internal.ExecutionsKt$executeWithBehaviours$2$1.invoke(executions.kt)
  13. at io.kotest.core.internal.ExecutionsKt$executeWithBehaviours$2$1.invoke(executions.kt)
  14. at io.kotest.core.internal.ExecutionsKt.wrapTestWithGlobalAssert(executions.kt:39)
  15. at io.kotest.core.internal.ExecutionsKt.access$wrapTestWithGlobalAssert(executions.kt:1)
  16. at io.kotest.core.internal.ExecutionsKt$executeWithBehaviours$2.invokeSuspend(executions.kt:12)
  17. at io.kotest.core.internal.ExecutionsKt$executeWithBehaviours$2.invoke(executions.kt)
  18. at io.kotest.core.internal.ExecutionsKt$executeWithBehaviours$2.invoke(executions.kt)
  19. at io.kotest.core.internal.ExecutionsKt$wrapTestWithAssertionModeCheck$2.invokeSuspend(executions.kt:25)
  20. at io.kotest.core.internal.ExecutionsKt$wrapTestWithAssertionModeCheck$2.invoke(executions.kt)
  21. at io.kotest.core.internal.ExecutionsKt$wrapTestWithAssertionModeCheck$2.invoke(executions.kt)
  22. at io.kotest.core.internal.AssertionsCheckKt.executeWithAssertionsCheck(assertionsCheck.kt:25)
  23. at io.kotest.core.internal.ExecutionsKt.wrapTestWithAssertionModeCheck(executions.kt:24)
  24. at io.kotest.core.internal.ExecutionsKt.executeWithBehaviours(executions.kt:11)
  25. at io.kotest.core.internal.TestCaseExecutor$executeInScope$2.invokeSuspend(TestCaseExecutor.kt:268)
  26. at io.kotest.core.internal.TestCaseExecutor$executeInScope$2.invoke(TestCaseExecutor.kt)
  27. at io.kotest.core.internal.TestCaseExecutor$executeInScope$2.invoke(TestCaseExecutor.kt)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题