Kakao - Nice and simple DSL for Espresso in Kotlin

  •        20

At Agoda, we have more than 1000 automated tests to ensure our application's quality and give our best experience to the user. All of them are written with Espresso from Google. Even though Espresso is working really well with our test, the code readability is quite low. Let's look at some of the examples of how we write the test. This is an example just to check the visibility and you can see that it's not looking that good. As Agoda developers, we want to improve not just our codebase quality, but also our implementation of tests as well. This is why we are introducing Kakao. The library that will make you enjoy writing automated tests like you are drinking a hot chocolate.

https://github.com/agoda-com/Kakao

Tags
Implementation
License
Platform

   




Related Projects

kotlin-dsl - Kotlin language support for Gradle build scripts

  •    Kotlin

Welcome! The Gradle Kotlin DSL provides support for writing Gradle build scripts using JetBrains' Kotlin language. It aims to provide Gradle users with a rich, flexible and statically-typed approach to developing build logic in conjunction with the best IDE and tooling experience possible. You can read more about the project in our announcement blog post and check out the frequently asked questions in the project wiki.

Barista - :coffee: The guy who serves a great Espresso

  •    Kotlin

Barista makes developing UI test faster, easier and more predictable. Built on top of Espresso, it provides a simple an discoverable API, removing most of the boilerplate and verbosity of common Espresso tasks. You and your Android team will write tests with no effort. Psst, hey. Migrating to Barista 2? Check out this guide to help you with the transition.

RxTest - Kotlin DSL for easier RxJava testing.

  •    Kotlin

For bugs, questions and discussions please use the Github Issues.


MaterialDrawerKt - A Kotlin DSL wrapper around the mikepenz/MaterialDrawer library.

  •    Kotlin

Create navigation drawers in your Activities and Fragments without having to write any XML, in pure Kotlin code, with access to all the features of the original library: all sorts of menu items, badges, account headers, and more. You can find the sample app in the Play Store, and its source code in the app module of the project.

ktx - LibKTX: Kotlin extensions for LibGDX games and applications

  •    Kotlin

Kotlin utilities for LibGDX applications. KTX aims to make LibGDX as Kotlin-friendly as possible without turning the API upside down. It provides modular utilities for certain parts of LibGDX with poor Kotlin support. This is not a new framework by any means - but Kotlin certainly makes LibGDX feel like one.

kotlinx.html - Kotlin DSL for HTML

  •    Kotlin

A root module for all kotlinx.html components

StateMachine - A Kotlin DSL for finite state machine

  •    Kotlin

A Kotlin DSL for finite state machine. In this example, we create a StateMachine from the following state diagram.

Splitties - A family of small Kotlin libraries for delightful Android development

  •    Kotlin

Splitties is a collection of small independent Android libraries that aims to make developing apps and libraries for Android (including Wear, TV, Things, Auto and ChromeOS targeted) easier and more fun. Some modules are similar to what Anko provides.

koin - KOIN - a pragmatic lightweight dependency injection framework for Kotlin

  •    Kotlin

A pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection.

koin - KOIN - a pragmatic lightweight dependency injection framework for Kotlin

  •    Kotlin

A pragmatic lightweight dependency injection framework for Kotlin developers. Written in pure Kotlin, using functional resolution only: no proxy, no code generation, no reflection.

Spark - A simple expressive web framework for java

  •    Java

Spark is a micro framework for creating web applications in Kotlin and Java 8 with minimal effort. It is a simple and expressive Java/Kotlin web framework DSL built for rapid development. Sparks intention is to provide an alternative for Kotlin/Java developers that want to develop their web applications as expressive as possible and with minimal boilerplate. With a clear philosophy Spark is designed not only to make you more productive, but also to make your code better under the influence of Spark’s sleek, declarative and expressive syntax.

Xtendroid - Xtendroid is a DSL (domain-specific language) for Android that greatly reduces boilerplate code while providing great tooling support

  •    Xtend

Xtendroid is a DSL (domain-specific language) for Android that is implemented using the Xtend transpiler, which features extension methods and active annotations (edit-time code generators) that expand out to Java code during editing or compilation. Active annotations, in particular, make Xtend more suitable for DSL creation than languages like Kotlin or Groovy (e.g. see @AndroidActivity). Xtendroid supports both Eclipse and IntelliJ/Android Studio, including code completion, debugging, and so on. Xtendroid can replace dependency injection frameworks like RoboGuice, Dagger, and Android Annotations, with lazy-loading getters that are automatically generated for widgets in your layouts. With Xtend's lambda support and functional-style programming constructs, it reduces/eliminates the need for libraries like RetroLambda and RxJava. With it's database support, Xtendroid also removes the need for ORM libraries.

dsl-json - High performance JVM JSON library

  •    Java

Fastest JVM (Java/Android/Scala/Kotlin) JSON library with advanced compile-time databinding support. Compatible with DSL Platform. Java JSON library designed for performance. Built for invasive software composition with DSL Platform compiler.

RxIdler - An IdlingResource for Espresso which wraps an RxJava Scheduler.

  •    Java

An IdlingResource for Espresso which wraps an RxJava Scheduler.When that Scheduler is first accessed via Schedulers, the RxIdler function will wrap it with an Espresso IdlingResource and side-effect by registering it to the Espresso class.

double-espresso - [DEPRECATED] A pure Gradle port of the Espresso testing utility for Android!

  •    Java

[DEPRECATED] A pure Gradle port of the Espresso testing utility for Android!