UITesting
This sample app is based on Espresso and others UI testing frameworks. The app shows how to do Integration test with Espresso, in Java, in Kotlin, and other testing Kotlin libs.
Main activities were code in Kotlin. As tests are code in Java, and in Kotlin, we can easily see differences between both languages.
Introduction
In this sample we have different "feature branches", showing, how we'd set up and "config" espresso test framework, as well as how to record and run instrumentation tests.
Aditionaly, we will compare this test with another testing frameworks. For example, Kakao testing library, created by Agoda, in Kotlin, that brings a lot of benefits, as readability, reusability and is extensibleDSL.
Getting started
This repository contains an Android application to do login or signin in a sample app.
This Application is based on four Activities:
LoginActivity
showing a form with two editext to complete with data.
SignUpActivity
showing a form with several fields to complete with data.
MessageActivity
showing a success message.
ErrorActivity
showing a error message.
Presentations
Video
Branches
In this branches, we show how setting up espresso dependencies, record with espresso recorder, create test in kotlin and show diferents with Kakao lib.
- feature/settings-espresso we show how setting up espresso dependencies.
- feature/record-espresso-tests we show how record with espresso recorder.
- feature/testing-with-espresso-kotlin We show how create UI Test in Kotlin.
- feature/testing-with-kakao We show how create UI Test with Kakao lib.
- feature/testing-with-espresso-kotlin-pageobject We show how create with Page Object Pattern UI tests in Kotlin.
- feature/testing-with-espresso-kotlin-idle-resources We show how create with UI tests in Kotlin, and idle resources.
Libraries used in this project
Code style
Here you can download and install the java codestyle. https://github.com/JSBerrocoso/java-code-styles
Documentation
There are some links which can be useful:
- Android Testing Support Library official documentation
- Espresso Cheat Sheet
- Espresso Idling Resources
- Testing codelab
- Testing with Kotlin
- Kakao - how to make UI testing great again
- Espresso Custom Matchers
- Finding UI views
- Kata Super Heroes in Kotlin
- AdapterViews and Espresso
- Kata Super Heroes in Kotlin
- AdapterViews and Espresso
- CleanGUITestArchitecture
License
Copyright 2017 JSBerrocoso
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.