diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index e8f0d7d..e75b5e3 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -16,7 +16,6 @@
-
diff --git a/furufuru/build.gradle b/furufuru/build.gradle
index d52586d..de6fb8c 100644
--- a/furufuru/build.gradle
+++ b/furufuru/build.gradle
@@ -147,7 +147,7 @@ dependencies {
testImplementation "android.arch.core:core-testing:1.1.1"
// mockk
- ext.mockk = "1.12.3"
+ ext.mockk = "1.12.7"
testImplementation "io.mockk:mockk:${mockk}"
testImplementation "io.mockk:mockk-agent-jvm:${mockk}"
diff --git a/furufuru/src/test/java/dev/iaiabot/furufuru/feature/ExampleUnitTest.kt b/furufuru/src/test/java/dev/iaiabot/furufuru/feature/ExampleUnitTest.kt
index 483e6bd..7fac8e5 100644
--- a/furufuru/src/test/java/dev/iaiabot/furufuru/feature/ExampleUnitTest.kt
+++ b/furufuru/src/test/java/dev/iaiabot/furufuru/feature/ExampleUnitTest.kt
@@ -1,16 +1,33 @@
package dev.iaiabot.furufuru.feature
+import dev.iaiabot.furufuru.usecase.MyExtension
import org.junit.Assert.assertEquals
-import org.junit.Test
+import org.junit.jupiter.api.Test
+import org.junit.jupiter.api.extension.ExtendWith
/**
* Example local unit test, which will execute on the development machine (host).
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
+
+@ExtendWith(MyExtension::class)
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
+ println("test1")
+ assertEquals(4, 2 + 2)
+ }
+
+ @Test
+ fun hoge() {
+ println("test2")
+ assertEquals(4, 2 + 2)
+ }
+
+ @Test
+ fun fuga() {
+ println("test3")
assertEquals(4, 2 + 2)
}
}
diff --git a/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/GetScreenShotUseCaseImplTest.kt b/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/GetScreenShotUseCaseImplTest.kt
index 9ae8238..490f418 100644
--- a/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/GetScreenShotUseCaseImplTest.kt
+++ b/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/GetScreenShotUseCaseImplTest.kt
@@ -1,14 +1,20 @@
package dev.iaiabot.furufuru.usecase
import com.google.common.truth.Truth.assertThat
+import dev.iaiabot.furufuru.feature.ui.issue.IssueBodyTemplate
import dev.iaiabot.furufuru.repository.ScreenshotRepository
import dev.iaiabot.furufuru.testtool.initMockOnGroup
import io.mockk.coEvery
+import io.mockk.junit5.MockKExtension
+import io.mockk.mockkObject
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.runBlocking
+import org.junit.jupiter.api.TestInstance
+import org.junit.jupiter.api.extension.*
import org.spekframework.spek2.Spek
import org.spekframework.spek2.style.specification.describe
+@ExtendWith(MyExtension::class)
internal object GetScreenShotUseCaseImplTest : Spek({
lateinit var usecase: GetScreenShotUseCase
val screenshotRepository = initMockOnGroup()
@@ -16,6 +22,7 @@ internal object GetScreenShotUseCaseImplTest : Spek({
describe("#getScreenShot()") {
context("スクリーンショットがある場合") {
beforeGroup {
+ mockkObject(IssueBodyTemplate)
coEvery { screenshotRepository.observe() } returns flow { emit("SCREEN_SHOT") }
usecase = GetScreenShotUseCaseImpl(
screenshotRepository,
@@ -31,3 +38,18 @@ internal object GetScreenShotUseCaseImplTest : Spek({
}
}
})
+
+open class MyExtension: Extension, BeforeEachCallback, BeforeAllCallback, AfterAllCallback {
+
+ override fun beforeEach(context: ExtensionContext?) {
+ println("furufuru before each")
+ }
+
+ override fun beforeAll(context: ExtensionContext?) {
+ println("furufuru before all")
+ }
+
+ override fun afterAll(context: ExtensionContext?) {
+ println("furufuru after all")
+ }
+}
diff --git a/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/PostIssueUseCaseImplTest.kt b/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/PostIssueUseCaseImplTest.kt
index 05f3b2c..2b34c5f 100644
--- a/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/PostIssueUseCaseImplTest.kt
+++ b/furufuru/src/test/java/dev/iaiabot/furufuru/usecase/PostIssueUseCaseImplTest.kt
@@ -10,13 +10,16 @@ import dev.iaiabot.furufuru.usecase.user.SaveUsernameUseCase
import dev.iaiabot.furufuru.util.GithubSettings
import io.mockk.coEvery
import io.mockk.every
+import io.mockk.junit5.MockKExtension
import io.mockk.mockk
import io.mockk.mockkObject
import kotlinx.coroutines.runBlocking
import org.junit.Assert.fail
+import org.junit.jupiter.api.extension.ExtendWith
import org.spekframework.spek2.Spek
import org.spekframework.spek2.style.specification.describe
+@ExtendWith(MockKExtension::class)
internal object PostIssueUseCaseImplTest : Spek({
lateinit var usecase: PostIssueUseCase
val issueRepository = initMockOnGroup()
@@ -34,7 +37,6 @@ internal object PostIssueUseCaseImplTest : Spek({
every { imageUrl } returns "image"
}
every { githubSettings.furufuruBranch } returns "furufuru-branch"
- mockkObject(IssueBodyTemplate)
every { IssueBodyTemplate.createBody(any(), any(), any(), any()) } returns "ISSUE_BODY"
coEvery { issueRepository.post(any()) } returns Unit
coEvery { saveUsernameUseCase(any()) } returns Unit
diff --git a/furufuru/src/test/resources/junit-platform.properties b/furufuru/src/test/resources/junit-platform.properties
new file mode 100644
index 0000000..b3823ff
--- /dev/null
+++ b/furufuru/src/test/resources/junit-platform.properties
@@ -0,0 +1,2 @@
+junit.jupiter.testinstance.lifecycle.default=per_class
+junit.extensions.autodetection.enabled=true