Android'de MockK ile Test Yazımı

Bu mobide MockK ile nasıl temel olarak test yazacağınızı öğreneceksiniz.


Görsel Referansı


Unit Test Nedir?


Unit test, yazılım programlamada bir tasarım ve geliştirme yöntemidir. Bu yöntemde yazılım geliştirici, yazılım kodunu oluşturan birimlerin kullanıma hazır olduğuna ikna olur.


Neden MockK?


Unit test yazmak, hataları önceden izlemenize ve kodunuzda değişiklik yaptığınızda yeniden ortaya çıkmamalarını sağlamanıza yardımcı olur. MockK, unit test toolkit'te izole testler yazmanıza yardımcı olacak önemli bir araçtır. MockK mocking framework'ü nasıl kullanacağınızı öğrenmek için okumaya devam edin veya neden diğer framework'ler üzerinde MockK kullanmanız gerektiğini öğrenin.


MockK, Kotlin programlarıyla kullanılmak üzere Kotlin'de yerleşik bir mocking framework'tür. MockK, Kotlin'de yazıldığından, singleton, extension ve final class gibi Kotlin dili özellikleri için birinci sınıf desteğe sahiptir.


MockK Nasıl Kullanılır?


MockK, Android ile harika çalışır ve hem Android unit testlerinde hem de instrumented testlerde nesneleri mock'lamanıza olanak tanır. MockK, Android kodunuzu test etmenize yardımcı olmak için mocking context, statik fonksiyonlar ve daha fazlasını işleyebilir.

MockK framework'u kurmak için tek yapmanız gereken modülünüzün gradle dosyasına bir bağımlılık olarak eklemek olacak. Çoğu Android Studio projesinde bu dosya app/build.gradle konumunda bulunur. Dosyayı açtıktan sonra, dependencies bloğunu arayın ve yeni bir satır ekleyin.


testImplementation “io.mockk:mockk:$mockk_version”

MockK ile Test Yazımı


InstantTaskExecutorRule ile test kuralı oluşturuyoruz.


@get:Rule
var rule: TestRule = InstantTaskExecutorRule()

MainCoroutineRule, TestCoroutineScope unit test için main Coroutines dispatcher'ı ayarlar. TestCoroutineScope, Coroutines'in yürütülmesi üzerinde kontrol sağlar. Tek yapmamız gereken onu bir @Rule içine koymak olacaktır.


@get:Rule
var mainCoroutinesRule = MainCoroutineRule()

MockK'ta en yaygın kullanılan açıklama @MockK'tur. El ile aramak zorunda kalmadan mock örnekler oluşturmak ve enjekte etmek için @Mockk kullanabilirsiniz.


Aşağıdaki örnekte, @Mockk ek açıklamasını kullanarak mock bir repository oluşturun.