Articles of Блок тестирование

В тесте kotlin укажите, как назначить lateinit var

@RunWith(MockitoJUnitRunner::class) class RoundingTest { lateinit var rounding: (Double) -> Double @Before fun initValues(){ rounding(17.25) } @Test fun checkRounding() { rounding(17.25) var rounding = MyRoundingClass.roundValue(Myobject); Assert.assertEquals(17.23, rounding) } } object MyRoundingClass{ fun roundValue(myObject: MyObject): (Double) -> Double { return when (myObject.isrouding?.needed) { ROUND_DOWN -> { value -> roundDown(BigDecimal.valueOf(value)) } else -> // no rounding { value […]

Захват объектов с помощью JMockit и Kotlin

Я использую JMockit уже довольно давно, и мне это очень нравится. Тем не менее, я просто столкнулся с проблемой, которую я не могу решить. См. Фрагмент ниже для некоторого тестового кода Kotlin, проверяющего код производства Kotlin. @Injectable lateinit var experimentStorage: ExperimentStorage … val experimentCaptor = mutableListOf<Experiment>() object : Verifications() { init { experimentStorage.save(withCapture(experimentCaptor)) } } […]

Как написать надлежащий тест для реактивного репозитория интерфейса, который возвращает Observable только в том случае, когда есть какое-то событие, как издеваться над запуском этого события

Я пытаюсь написать правильный тест для моего реактивного репозитория, который просто прослушивает изменения местоположения. Я не хочу на самом деле прослушивать изменения местоположения и просто «вызывать» новое изменение местоположения несколько раз с созданием настраиваемого местоположения. Вот репозиторий и его функция для сбора мест: interface RxLocationRepository { @SuppressLint("MissingPermission") fun onLocationUpdate(): Observable<Location> fun stopLocationUpdates() } Вот его […]

Отказываясь от ответов API с помощью Mockito

вот часть кода от ведущего fun getCustomers (pageNumber: Int?) { api.getCustomers(Constants.Pagination.PAGE_SIZE.toString(),pageNumber.toString()) .enqueue(object : Callback<com.ecm.realpad.contacts.network.model.Customers> { override fun onResponse(call: Call<Customers>, response: Response<Customers>) { val customers = response.body() response.body()?.let { if (pageNumber == Constants.Pagination.START_PAGE) { customers?.let { customersData = it } } else { customers?.let { view?.render(CustomersModel.GoToCustomersNextData(it)) } } } ?: run { view?.render(ErrorModel.ErrorState()) } } override […]

Создание абстрактного Spek для инициализации общих объектов с помощью Kotlin and Spek

Я пытаюсь написать модульные тесты с помощью рамки Kotlin + Spek. До сих пор выглядит неплохо, но у меня есть проблема, что я должен написать много кода шаблона, если я хочу иметь несколько объектов Spec для одного класса, который я тестирую. Это мой код, чтобы проиллюстрировать проблему: object MyFirstSpec : Spek({ val myMock1: SomeObject1 = […]

mockito InjectMocks не работает?

Я пытаюсь использовать тестовую реализацию класса и использовать его для тестирования с помощью @InjectMocks но он, похоже, не вводит его. Я попытался использовать Spy, но это не сработало и вместо этого создало пустую измененную версию вместо использования версии, созданной внутри моей функции @Before Вот мой тестовый код: @Before fun setup() { someFunction = object : […]

kotlin mockk не отвечает найденная ошибка

Привет, я пытаюсь высмеять ответ, который я получаю из Единого наблюдаемого, который возвращается из модифицированного с использованием делегата, который вызывает мой класс ведущего класса, и я получаю следующую ошибку: io.mockk.MockKException: не найдено ни одного ответа: LoginPresenter (# 1) .login (LoginRequest (email = hello@gmail.com, password = password123)) Вот мой тестовый код @Test fun testKotlinMock(){ val presenter […]

Какова философия Котлина в тестах?

Какова философия Котлина в тестах ? Поскольку все классы и функции по умолчанию закрыты (не открываются ), насмешливые фреймворки, такие как Mockito, явно не являются первоклассными гражданами. Об этой проблеме уже написано много, а также о возможных решениях , но что думают дизайнеры Kotlin для тестирования с удвоениями? Это подделки и заглушки, или вы должны […]

Класс Mock Kotlin в модульном тестировании Java

У меня есть Java-тест с Mockito: public class PersistentNodeDeserializerTests { @Test public void userInfoPersistentNodeDeserializer() { PersistentNode node = mock(PersistentNode.class); when(node.stringChild("username")).thenReturn("cliff12"); //more stuff } } PersistentNode – класс Kotlin: open class PersistentNode(private val path: PersistentNodePath, val content: Any) { val stringPath: String get() = path.get() val key: String get() { val parts = stringPath.split("/"); return parts[parts.size […]

При использовании сопрограмм kotlin, как я могу тестировать функцию, вызывающую функцию приостановки?

У меня такой класс class SomeClass { fun someFun() { // … Some synchronous code async { suspendfun() } } private suspend fun suspendFun() { dependency.otherFun().await() // … other code } } Я хочу, чтобы unit test someFun() поэтому я написал модульный тест, который выглядит следующим образом: @Test fun testSomeFun() { runBlocking { someClass.someFun() } […]