Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add #108

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

Add #108

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion furufuru/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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}"

Expand Down
Original file line number Diff line number Diff line change
@@ -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)
}
}
Original file line number Diff line number Diff line change
@@ -1,21 +1,28 @@
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<ScreenshotRepository>()

describe("#getScreenShot()") {
context("スクリーンショットがある場合") {
beforeGroup {
mockkObject(IssueBodyTemplate)
coEvery { screenshotRepository.observe() } returns flow { emit("SCREEN_SHOT") }
usecase = GetScreenShotUseCaseImpl(
screenshotRepository,
Expand All @@ -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")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<IssueRepository>()
Expand All @@ -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
Expand Down
2 changes: 2 additions & 0 deletions furufuru/src/test/resources/junit-platform.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
junit.jupiter.testinstance.lifecycle.default=per_class
junit.extensions.autodetection.enabled=true