spek
turbine
spek | turbine | |
---|---|---|
2 | 8 | |
2,222 | 2,328 | |
-0.2% | 0.6% | |
0.0 | 8.2 | |
5 months ago | 25 days ago | |
Kotlin | Kotlin | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
spek
-
Evolution of unit tests in Android
Spek is a unit testing framework for Kotlin which supports Specification and Gherkin style.
-
Best practices for Unit Testing Android Apps with Mockk, Kotest and others
The describe-it style is mainly used to write Spek tests. describe structure allows us to create a group of tests describing a specific method, and, in it, a specific scenario for the method is written. But it is also possible to use the GivenWhenThen style. Unfortunately, the framework doesn’t have embedded coroutine support, so we have to always use runBlockingTest { } for suspended functions. There is a ticket with this feature request on Github, but it seems it was never completed.
turbine
-
Best practices for Unit Testing Android Apps with Mockk, Kotest and others
Much of this is now available in Mockito. Even more - naturally Kotlin doesn’t have static methods, and it’s a good practice not to create them. Ideal code is code that follows the SOLID and Clean Architecture principles, which means it can be easily mocked and tested. Therefore, we, Android developers, don’t need PowerMock’s special features but it’s important to remember that such frameworks exist. Another Mockito’s limitation concerns work with coroutines and flows. In such cases, once again, mockito-kotlin as well as third-party libraries like turbine will help you out. This being said, I’d like to tell you about another alternative to Mockito, which is Mockk.
-
As an Android dev - which of these topics do you feel like you’re struggling the most with? What skills would you like to improve?
All you need: https://github.com/cashapp/turbine
-
Testing Kotlin Flows on Coroutines 1.6
You've essentially converged on what Turbine does.
- I'm getting an error that 'child jobs have not finished yet' while executing this test case. But i'm making sure that my child coroutine finishes before asserting the result. Any ideas?
-
Updating my tech stack: RxJava vs Flow
Turbine is an excellent library for testing flows and is pretty much required imo. But overall Rx is much easier to test; debugging works much more consistently and the built in testing functions are great.
-
JVM Testing Newsletter | July 2021
turbine release 0.6.0
-
Testing StateFlow
This issue on how StateFlows should be tested is probably also worth reading: https://github.com/cashapp/turbine/issues/19
-
From RxJava to Kotlin Flow: Testing
Use https://github.com/cashapp/turbine
What are some alternatives?
Kotest - Powerful, elegant and flexible test framework for Kotlin with additional assertions, property testing and data driven testing
Reaktive - Kotlin multi-platform implementation of Reactive Extensions
mockk - mocking library for Kotlin
expekt - BDD assertion library for Kotlin
kotlinx.coroutines - Library support for Kotlin coroutines
mockito-kotlin - Using Mockito with Kotlin
junit-pioneer - JUnit 5 Extension Pack
aspen - Aspen is a simple test runner for Kotlin that allows you to write tests using your own DSL.
compose-multiplatform - Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
balin - Balin is an automation library for Kotlin. It's basically a Selenium-WebDriver wrapper inspired by Geb.