craigjbass
07/28/2017, 7:59 PMTesting started at 20:59 ...
Jul 28, 2017 8:59:39 PM org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry loadTestEngines
INFO: Discovered TestEngines with IDs: [spek]
Exception in thread "main" java.lang.AbstractMethodError: Method org/jetbrains/spek/engine/Scope$Group.isTest()Z is abstract
at org.jetbrains.spek.engine.Scope$Group.isTest(Scope.kt)
at org.junit.platform.engine.TestDescriptor.hasTests(TestDescriptor.java:160)
at org.junit.platform.launcher.core.Root.lambda$static$0(Root.java:33)
at org.junit.platform.engine.TestDescriptor.accept(TestDescriptor.java:179)
at org.junit.platform.engine.TestDescriptor.lambda$accept$0(TestDescriptor.java:181)
at java.lang.Iterable.forEach(Iterable.java:75)
at org.junit.platform.engine.TestDescriptor.accept(TestDescriptor.java:181)
at org.junit.platform.launcher.core.Root.lambda$acceptInAllTestEngines$2(Root.java:85)
at java.util.LinkedHashMap$LinkedValues.forEach(LinkedHashMap.java:608)
at org.junit.platform.launcher.core.Root.acceptInAllTestEngines(Root.java:85)
at org.junit.platform.launcher.core.Root.prune(Root.java:77)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:117)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
at org.jetbrains.spek.tooling.runner.junit.JUnitPlatformSpekRunner.run(JUnitPlatformSpekRunner.kt:107)
at org.jetbrains.spek.tooling.MainKt.main(Main.kt:58)
craigjbass
07/28/2017, 8:00 PMcraigjbass
07/28/2017, 8:01 PMcraigjbass
07/28/2017, 8:02 PMadambl4
07/28/2017, 8:17 PMtestCompile 'org.junit.platform:junit-platform-launcher:1.0.0-M4'
craigjbass
07/28/2017, 8:17 PMcraigjbass
07/28/2017, 8:17 PMcraigjbass
07/28/2017, 8:18 PMadambl4
07/28/2017, 8:19 PMcraigjbass
07/28/2017, 8:21 PMcraigjbass
07/28/2017, 8:21 PMartem_zin
07/28/2017, 9:52 PMrafal
08/01/2017, 1:47 PMraniejade
08/01/2017, 1:51 PMv0.4.1
is out https://github.com/raniejade/spek-idea-plugin/releases/tag/v0.4.1. For Android Studio, you don't have to manually specify a before launch step when creating a run configuration. Tested it w/ AS 2.3.3
and the latest 3.0
canary builds.jackmiras
08/02/2017, 3:32 PMgiven("a runSeedsAndConnect call") {
on("the attempt to create a datastore") {
val spy = spy(MongoDatabaseConnection())
it("should return a non null value") {
val datastore = mongoDatabaseConnection.runSeedsAndConnect()
datastore.shouldNotBeNull()
}
it("should return a Datastore instance") {
val datastore = mongoDatabaseConnection.runSeedsAndConnect()
datastore shouldBeInstanceOf Datastore::class
}
it("should call createDatastore function") {
spy.runSeedsAndConnect()
verify(spy, times(1)).createDatastore()
}
it("should call runSeeds function") {
val datastore = mongoDatabaseConnection.createDatastore()
spy.runSeedsAndConnect()
verify(spy, times(2)).runSeeds(datastore)
}
}
}
The problem happens int the test it("should call runSeeds function")
when the verify(spy, times(2).runSeeds(datastore))
is invoked. For some reason that I don't know I can't call the verify(...)
function more than once when I'm using a partial mock.jackmiras
08/02/2017, 3:32 PMorg.mockito.exceptions.misusing.UnfinishedVerificationException:
Missing method call for verify(mock) here:
-> at com.nhaarman.mockito_kotlin.MockitoKt.verify(Mockito.kt:249)
Example of correct verification:
verify(mock).doSomething()
Also, this error might show up because you verify either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
Mocking methods declared on non-public parent classes is not supported.
at com.nhaarman.mockito_kotlin.MockitoKt.verify(Mockito.kt:249)
at db.connection.MongoDatabaseConnectionTest$1$1$9$1$4.invoke(MongoDatabaseConnectionTest.kt:192)
at db.connection.MongoDatabaseConnectionTest$1$1$9$1$4.invoke(MongoDatabaseConnectionTest.kt:21)
at org.jetbrains.spek.engine.Scope$Test.execute(Scope.kt:106)
at org.jetbrains.spek.engine.Scope$Test.execute(Scope.kt:83)
at org.junit.platform.engine.support.hierarchical.Node.execute(Node.java:94)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$1(HierarchicalTestExecutor.java:81)
at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$1(HierarchicalTestExecutor.java:91)
at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$1(HierarchicalTestExecutor.java:91)
at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$1(HierarchicalTestExecutor.java:91)
at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$1(HierarchicalTestExecutor.java:91)
at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.lambda$execute$1(HierarchicalTestExecutor.java:91)
at org.junit.platform.engine.support.hierarchical.SingleTestExecutor.executeSafely(SingleTestExecutor.java:66)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:76)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:51)
at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:43)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:137)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:87)
at org.junit.platform.launcher.Launcher.execute(Launcher.java:93)
at org.jetbrains.spek.tooling.runner.junit.JUnitPlatformSpekRunner.run(JUnitPlatformSpekRunner.kt:107)
at org.jetbrains.spek.tooling.MainKt.main(Main.kt:58)
You guys know how can I solve this problem?artur.dryomov
08/02/2017, 3:36 PMjackmiras
08/02/2017, 3:39 PMjackmiras
08/02/2017, 3:39 PMartur.dryomov
08/02/2017, 3:41 PMMongoDatabaseConnection
an interface or just a regular Kotlin class?artur.dryomov
08/02/2017, 3:46 PMorg.mockito:mockito-inline:2.8.47
. Mockito has opt-in for mocking final classes — https://github.com/mockito/mockito/wiki/What%27s-new-in-Mockito-2#unmockablejackmiras
08/02/2017, 3:47 PMMongoDatabaseConnection
is just a regular Kotlin classjackmiras
08/02/2017, 3:48 PMartur.dryomov
08/02/2017, 3:49 PMartur.dryomov
08/02/2017, 3:51 PMjackmiras
08/02/2017, 4:02 PMjackmiras
08/02/2017, 4:02 PMbrainail
08/09/2017, 8:30 PMadambl4
08/09/2017, 8:36 PMbrainail
08/09/2017, 8:58 PMException in thread "main" org.junit.platform.commons.util.PreconditionViolationException: Could not load class with name: ...SomeClassSpec
at org.junit.platform.engine.discovery.ClassSelector.lambda$getJavaClass$0(ClassSelector.java:71)
at java.util.Optional.orElseThrow(Optional.java:290)
at org.junit.platform.engine.discovery.ClassSelector.getJavaClass(ClassSelector.java:70)
at org.jetbrains.spek.engine.SpekTestEngine.resolveSpecs(SpekTestEngine.kt:79)
at org.jetbrains.spek.engine.SpekTestEngine.discover(SpekTestEngine.kt:50)
at org.junit.platform.launcher.core.DefaultLauncher.discoverRoot(DefaultLauncher.java:115)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:87)
at org.junit.platform.launcher.Launcher.execute(Launcher.java:93)
at org.jetbrains.spek.tooling.runner.junit.JUnitPlatformSpekRunner.run(JUnitPlatformSpekRunner.kt:107)
at org.jetbrains.spek.tooling.MainKt.main(Main.kt:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)
and when I run it on the whole package then I receive:
java.lang.ClassNotFoundException: com.intellij.junit5.JUnit5IdeaTestRunner
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.junit.JUnitStarter.getAgentClass(JUnitStarter.java:252)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)