Articles of unit testing

Тестирование модулей плагина Intellij IDEA (зависимости от проекта)

У меня есть плагин Intellij IDEA, который просто находит org.jetbrains.annotations.NotNull аннотацию и отмечает его как ошибку: class JetBrainsNullabilityAnnotations : BaseJavaLocalInspectionTool() { … override fun buildVisitor(holder: ProblemsHolder, isOnTheFly: Boolean): PsiElementVisitor { return object : JavaElementVisitor() { override fun visitAnnotation(annotation: PsiAnnotation) { super.visitAnnotation(annotation) if (annotation.qualifiedName == "org.jetbrains.annotations.NotNull") { // register problem } } } } } Но […]

Издевательское финальное поле с Котлином

Я новичок в Котлине, Мокито. Ниже код имеет ошибку, вызванную engine , неизменяемое поле, которое не издевается. Я потратил много времени, пытаясь решить эту проблему. Я обнаружил, что способ насмешливых работ, пока я не пойму и не удовлетворю это. переместите поле в конструктор. class Car(val engine: Engine) { … } изменение в изменяемое поле. private […]

ReferenceError: ok не определен в QUnitAsserter.assertTrue в Kotlin Javascript

Kotlin версии 1.0.x-1.1.0 поддерживают тестирование блока с помощью QUnit, но когда я загружаю тесты, это исключает это исключение: ReferenceError: ok is not defined at QUnitAsserter.assertTrue_4mavae$ (file:///D:/neoranga/Mis%20documentos/GitHub/FibonacciCounter/app/build/classes/test/lib/kotlin-test-js.js:50:5) at assertTrue (file:///D:/neoranga/Mis%20documentos/GitHub/FibonacciCounter/app/build/classes/test/lib/kotlin-test-js.js:93:27) at QUnitAsserter.assertTrue_o10pc4$ (file:///D:/neoranga/Mis%20documentos/GitHub/FibonacciCounter/app/build/classes/test/lib/kotlin-test-js.js:47:5) at QUnitAsserter.Asserter.assertEquals_lzc6tz$ (file:///D:/neoranga/Mis%20documentos/GitHub/FibonacciCounter/app/build/classes/test/lib/kotlin-test-js.js:182:10) at assertEquals (file:///D:/neoranga/Mis%20documentos/GitHub/FibonacciCounter/app/build/classes/test/lib/kotlin-test-js.js:108:20) at AppTest.myFirstTest (file:///D:/neoranga/Mis%20documentos/GitHub/FibonacciCounter/app/build/classes/test/app_test.js:17:5) at Object.<anonymous> (file:///D:/neoranga/Mis%20documentos/GitHub/FibonacciCounter/app/build/classes/test/app_test.js:29:21) Это мой тестовый класс: import org.junit.Test import kotlin.test.assertEquals class AppTest { […]

единичный тест с штормом апачей и кассандра: локальная топология, не потребляющая сообщение от кафки

У меня есть тест unit / integration, настроенный для публикации событий в очереди Kafka. У меня также есть локальная топология шторма, которая настроена на то, чтобы потреблять события в очереди kafka, сделать некоторую трансформацию в болт, а затем сохранить ее в базу данных cassandra. Тест настраивается следующим образом: class StormPersistorTest{ lateinit var cluster: LocalCluster private […]

Kotlin / Java – тестирование данных базы данных REST API

Я пытаюсь проверить подключение к моей базе данных и пытаюсь настроить базу данных Mock. Я понятия не имею, как это сделать. Как можно с какой-либо тестовой инфраструктурой издеваться над базой данных и тестировать мой метод (показано ниже) getUserById ? Поскольку это использует raw jdbc, как я могу перезаписать этот метод getConnection() чтобы использовать базу данных […]

Почему экземпляр $ MockitoMock $ не идентифицируется как макет?

Я использую Kotlin, Mockito и MockitoJRunner для запуска следующего упрощенного теста: open class SomeClassToBeMocked @Inject constructor() { fun map(foo: Foo): Bar {…} } @Mock private lateinit var someMock: SomeClassToBeMocked @InjectMocks private lateinit var subject: Subject @Test fun shouldAssertSomething() { val foo = Foo() // from Foo.kt val bar = Bar() // from Bar.java from *another […]

Mockito never () не работает с andThen rxjava2

Я тестирую довольно простой код, написанный в Котлине: o1.updateUser(params) .andThen(o2.reload()) Когда updateUser не работает, я ожидаю, что перезагрузка не будет выполнена. Но при тестировании с Mockito 2 и jUnit 5 происходит вызов указанного макета. насмешливо делается так: given(o1.updateUser(user)).willReturn(Completable.error(IllegalArgumentException()) given(o2.reload()).willReturn(Completable.complete()) Теперь проблема в том, что код ведет себя так, как ожидалось, а это значит, что в […]

java.util.logging.Logger в тестируемом классе

Я пытаюсь запустить тест для моего класса, который использует java.util.logging.Logger import java.util.logging.Logger; public class TestLogging { final Logger logger = Logger.getLogger("Test"); public void f1() { logger.entering(getClass().getName(), "f1"); logger.info("f1"); logger.fine("f1"); logger.finer("f1"); logger.finest("f1"); logger.exiting(getClass().getName(), "f1"); } } Поэтому я устанавливаю тестовый класс для проверки того, производит ли журнал выход, пока тестируется класс import org.junit.Before import org.junit.Test import […]

Тестирование модуля Проверка функции, которая должна быть вызвана

Предположим, у меня есть эта функция (написанная в Котлине): fun determineBottomBarView(assignee: String?, showChatAssignerFunction: () -> Unit, showChatComposerFunction: () -> Unit, hideChatComposerAndAssignerFunction: () -> Unit) { if (assignee.isNullOrEmpty()) { showChatAssignerFunction() } else { if (assignee.equals(localRequestManager.getUsername())) { showChatComposerFunction() } else { hideChatComposerAndAssignerFunction() } } } Можно ли проверить (в модульном тесте) showChatAssignerFunction для showChatAssignerFunction , когда цессионарий […]

Сценарий тестового сценария с колллинским обратным вызовом лямбда

Допустим, у нас есть следующая функция для тестирования fun loadData(dataId: Long, completion: (JsonElement?, Exception?) -> Unit { underlayingApi.post(url = "some/rest/url", completion = { rawResult, exception -> val processedResult = processJson(rawResult) completion(processedResult, exception) }) } Мне ясно, как насмехаться, вводить, заглушать и проверять звонки в underlayingApi . Мой вопрос: как код должен выглядеть так, чтобы проверить […]