All Projects → kzaikin → Test Smells

kzaikin / Test Smells

Licence: other
Test Smells for Android developers

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Test Smells

EasyUtAndroid
Android unit testing example 全面的android应用单元测试方法及案例
Stars: ✭ 21 (-82.5%)
Mutual labels:  unit-testing, junit, robolectric
Androidunittest
Save time & clear your unit tests on Android !
Stars: ✭ 205 (+70.83%)
Mutual labels:  unit-testing, junit, robolectric
Truth
Fluent assertions for Java and Android
Stars: ✭ 2,359 (+1865.83%)
Mutual labels:  unit-testing, junit
AndroidTestingBox
Android project to experiment various testing tools
Stars: ✭ 63 (-47.5%)
Mutual labels:  junit, robolectric
dummyjdbc
dummyjdbc answers database requests with dummy data to be independent of an existing database.
Stars: ✭ 20 (-83.33%)
Mutual labels:  unit-testing, junit
Kotlin Espresso Sample
MVP Android project that uses Espresso instrumentation tests and Robolectric. All written in Kotlin.
Stars: ✭ 104 (-13.33%)
Mutual labels:  junit, robolectric
Spectrum
A BDD-style test runner for Java 8. Inspired by Jasmine, RSpec, and Cucumber.
Stars: ✭ 142 (+18.33%)
Mutual labels:  unit-testing, junit
trx2junit
Transforms XML from trx-Testresults to JUnit-Testresults / trx to JUnit XML and the other way round
Stars: ✭ 42 (-65%)
Mutual labels:  unit-testing, junit
Android Gif Example
Gif RecyclerView in MVP using Dagger 2 + Retrofit 2 + Moshi + RxJava 2 + Glide 4 with JUnit and Espresso tests written in Kotlin + Kotlin DSL!
Stars: ✭ 334 (+178.33%)
Mutual labels:  junit, robolectric
Androidut
Android开发中必要的一环---单元测试(Unit Test)
Stars: ✭ 419 (+249.17%)
Mutual labels:  junit, robolectric
System Rules
A collection of JUnit rules for testing code which uses java.lang.System.
Stars: ✭ 492 (+310%)
Mutual labels:  unit-testing, junit
Junit Extensions
JUnit5 extensions library including JUnit5 equivalents of some of the common JUnit4 rules: ExpectedException, TemporaryFolder etc
Stars: ✭ 39 (-67.5%)
Mutual labels:  unit-testing, junit
Clean Mvvm Archcomponents
👽 Android app consuming Star Wars API.Built with clean architecture ,MVVM pattern, Koin , Coroutines + Flows ,Architecture Components, Data Binding , Firebase , Unit/UI Tests ,Motion Layout
Stars: ✭ 285 (+137.5%)
Mutual labels:  junit, robolectric
Robolectric
Android Unit Testing Framework
Stars: ✭ 5,372 (+4376.67%)
Mutual labels:  unit-testing, robolectric
Sample Code Movies
This repository contains sample code. Its purpose being, to quickly demonstrate Android and software development in general, clean code, best practices, testing and all those other must know goodies.
Stars: ✭ 81 (-32.5%)
Mutual labels:  unit-testing, robolectric
Test
The reference C++ unit testing framework (TDD, xUnit, C++03/11/14/17)
Stars: ✭ 112 (-6.67%)
Mutual labels:  unit-testing
Atoum
The modern, simple and intuitive PHP unit testing framework.
Stars: ✭ 1,382 (+1051.67%)
Mutual labels:  unit-testing
Xunit.analyzers
Roslyn analyzers for xUnit.net (please open issues in https://github.com/xunit/xunit)
Stars: ✭ 102 (-15%)
Mutual labels:  unit-testing
Movieapp
🎬 MovieApp is a Flutter application built to demonstrate the use of modern development tools with best practices implementation like Modularization, BLoC, Dependency Injection, Dynamic Theme, Cache, Shimmer, Testing, Flavor, CI/CD, etc.
Stars: ✭ 117 (-2.5%)
Mutual labels:  unit-testing
Vertxui
Pure 100% java reactive-style client-side webpages with POJO traffic, jUnit GUI testing, declarative view-on-model, automatic browser reloading and more.
Stars: ✭ 112 (-6.67%)
Mutual labels:  junit

Этот проект содержит Test Smells - примеры плохого дизайна и реализации юнит тестов. Все примеры взяты из реальных пулл-реквестов. Рядом с плохим примером всегда лежит способ избавиться от проблемы, сделав тест лучше.

Смеллы сформулированы так, чтобы на них можно было давать ссылку в пул-реквесте.

Цель проекта - помогать во внедрении юнит-тестирования в новые и существующие проекты.

Код использует JUnit4 тесты с Mockito и Hamcrest, но принципы смеллов не зависят от инструментов, и применимы к любым фреймворкам для тестирования и языкам.

Структура

Смеллы разложены по пакетам в test/java/

Идентификатор смела это имя пакета.

Например, в пакете code_wall лежит смелл "Стена текста".

В пакетах лежат файлы с тестами, содержащие примеры хороших @Good и плохих @Bad тестов.

Test Smells

know_your_tools

structure

  • multiple_asserts: Методы содержат несколько ассертов
  • many_tests_in_one: Много тестов в одном тестовом методе
  • repeating_setup: Повторяется настройка тестовых методов

readability

improper_tools

  • inherit_for_verify: Наследование для отслеживания переданных аргументов

reliability

  • modify_global: Изменение глобального состояния
  • random: Недетерминированные тесты
  • thread_sleep: Используется Thread#sleep
  • visible_for_testing: Код только для тестов AKA @VisibleForTesting
  • inherit_for_override: Наследование проверяемого класса для переопределения поведения

naming

  • long_name: Слишком длинное имя тестового метода
  • older_prefix: Лишние префиксы в названии тестов
  • no_action_or_assertion: В имени теста нет действия или проверяемых условий

completeness

speed

  • unnecessary_android_test: Используется androidTest там, можно запустить тест на хосте
  • unnecessary_robolectric: Используется Robolectric там, где нет Android специфики

LICENSE

This work is under Apache license

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].