Sobes.tech
Junior

Milliseid teeke kasutate Kotlinis testimiseks?

sobes.tech AI

Vastus AI-lt

  • JUnit 5: Standartne moodulite testiraam JVM-is. Kasutatakse peamiselt üksustestide jaoks.

  • MockK: Objektide ja käitumise mokkimise raamatukogu. Mugav luua mokke, stube ja kontrollida objektide vahelist suhtlust.

  • Kotest: Mitmefunktsionaalne testiraam, mis toetab erinevaid testimise stiile (Spec, WordSpec, StringSpec ja teised). Sageli kasutatakse väljenduslikumate ja struktureerituma testide kirjutamiseks.

  • Truth: Väidete (assertions) loomise raamatukogu. Muudab testid arusaadavamaks.

  • Robolectric: Android rakenduste testimise raamistik ilma virtuaalse seadme või emulaatorita. Imiteerib Androidi keskkonda JVM-is.

  • Espresso: Google'i raamistik Androidi kasutajaliidese testimiseks. Kasutatakse integratsiooni- ja UI-testide jaoks Android projektides.

MockK kasutamise näide:

// Vajalikud klasside importid
import io.mockk.*
import org.junit.jupiter.api.Test

// Testitava klassi näide
class MyService(private val dependency: Dependency) {
    fun processData(data: String): String {
        val processed = dependency.process(data)
        return "Result: $processed"
    }
}

// Moki sõltuvuse klassi näide
interface Dependency {
    fun process(input: String): String
}

class MyServiceTest {

    @Test
    fun testProcessData() {
        // Moki sõltuvuse loomine
        val mockDependency = mockk<Dependency>()

        // Moki käitumise määratlemine
        every { mockDependency.process("input") } returns "processed_data"

        // Testitava klassi loomine moki abil
        val myService = MyService(mockDependency)

        // Meetodi väljakutse
        val result = myService.processData("input")

        // Tulemuse kontroll
        assert(result == "Result: processed_data")

        // Moki meetodi väljakutse kontroll
        verify { mockDependency.process("input") }
    }
}