All Projects → Karumi → MaxibonKataKotlin

Karumi / MaxibonKataKotlin

Licence: Apache-2.0 license
Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.

Programming Languages

kotlin
9241 projects

Labels

Projects that are alternatives of or similar to MaxibonKataKotlin

pwa-workshop
Workshop: Turning a regular website into a Progressive Web Application
Stars: ✭ 41 (-2.38%)
Mutual labels:  training
blockchain
Blockchain, basic implementation in go
Stars: ✭ 16 (-61.9%)
Mutual labels:  training
diwa
A Deliberately Insecure Web Application
Stars: ✭ 32 (-23.81%)
Mutual labels:  training
DDTTX
DDTTX Tabletop Trainings
Stars: ✭ 22 (-47.62%)
Mutual labels:  training
CodeCoopersLms
As Code Coopers Training (previously known as Virtual Tech Academy), we have launched a LMS for our students. We are open sourcing those LMS projects here one by one for the greater good. Please share and Mark Star if you appreciate it.
Stars: ✭ 18 (-57.14%)
Mutual labels:  training
ModelZoo.pytorch
Hands on Imagenet training. Unofficial ModelZoo project on Pytorch. MobileNetV3 Top1 75.64🌟 GhostNet1.3x 75.78🌟
Stars: ✭ 42 (+0%)
Mutual labels:  training
coffee-and-coding
A resource repo for coffee-and-coding sessions in ONS
Stars: ✭ 18 (-57.14%)
Mutual labels:  training
Multi-Person-Pose-using-Body-Parts
No description or website provided.
Stars: ✭ 41 (-2.38%)
Mutual labels:  training
iOSBasicTraining
Code associated to the first level of our iOS Training.
Stars: ✭ 16 (-61.9%)
Mutual labels:  training
Wipro-PJP
Code written during Wipro PJP. 🍵📑
Stars: ✭ 60 (+42.86%)
Mutual labels:  training
training-materials
No description or website provided.
Stars: ✭ 47 (+11.9%)
Mutual labels:  training
postcsslayouts
This is the repository for my course, Building a Responsive Single-Page Design with PostCSS on LinkedIn Learning and Lynda.com.
Stars: ✭ 22 (-47.62%)
Mutual labels:  training
curriculum-foundation
iSAQB Curriculum for the CPSA - Foundation Level. This repository contains copyrighted work.
Stars: ✭ 35 (-16.67%)
Mutual labels:  training
KataTODOApiClientIOS
TODO API Client Kata for iOS Developers. The main goal is to practice integration testing using Nocilla and Nimble.
Stars: ✭ 20 (-52.38%)
Mutual labels:  training
traindown-dart
Dart (and Flutter) library for the Traindown Markup Language. This is the reference implementation for now. It is first to receive features and fixes.
Stars: ✭ 16 (-61.9%)
Mutual labels:  training
PathView
Simulate the running route of each player on the playground, and can be timed with a stopwatch
Stars: ✭ 5 (-88.1%)
Mutual labels:  training
KataSuperHeroesIOS
Super heroes kata for iOS Developers. The main goal is to practice UI Testing.
Stars: ✭ 69 (+64.29%)
Mutual labels:  training
carto-workshop
CARTO training materials
Stars: ✭ 81 (+92.86%)
Mutual labels:  training
tensorpeers
p2p peer-to-peer training of tensorflow models
Stars: ✭ 57 (+35.71%)
Mutual labels:  training
optimum
🏎️ Accelerate training and inference of 🤗 Transformers with easy to use hardware optimization tools
Stars: ✭ 567 (+1250%)
Mutual labels:  training

Karumi logo Kata Maxibon for Kotlin. Build Status

During this kata we will try to find how to use property based testing from different points of view:

  • Using property based testing and TDD at the same time.
  • Using property based testing to cover legacy code.
  • Using the already tested code to check if the tests are working fine (manual mutation testing).

If you want to learn just property based testing using an already implemented application go to the branch write-tests. If you prefer to practice TDD in the master branch you will find the kata already resolved. If you prefer to practice mutation testing stay in the master branch.

Getting started

Karumi developers love ice cream. And one of our favorites ice cream is named Maxibon:

Maxibon

Summer is comming and our small team sometime needs Maxibons to work better. But in the Karumi HQs finding a Maxibon is not always easy. We start every week with 10 Maxibons but once there are just 2 Maxibons or less we need to buy more.

Karumi developers can consume zero or a positive number of maxibons. The Karumi team is composed by five engineers and everytime some of these engineers go to the kitchen they grab some maxibons as follows:

  • If the developer is Pedro, he grabs three maxibons.
  • If the developer is Fran, he grabs one maxibon.
  • If the developer is Davide, he does not grab any maxibon.
  • If the developer is Sergio, he grabs two maxibons.
  • If the developer is Jorge, he grabs one maxibon.

When a Karumi engineer goes to the kitchen, they can go in group if needed, and there are just 2 maxibons or less left he has to send a message through the Slack API saying "Hi guys, I'm <NAME OF THE DEVELOPER>. We need more maxibons!". And the number of maxibons available will be automatically incremented by 10 :). If the number of maxibons left is lower than the number of maxibons the developer tries to get he will get just the number of maxibons available.

Tasks

Your task as iOS Developer is to resolve this problem or test an already implemented software, depending on the path you have choosen before to start.

  • If you want to practice TDD write a little piece of software to implement the already described scenario following the TDD cycle.
  • If you don not want to follow the TDD path create an empty project, add Kotlin Test as a dependency and start writing code.
  • If you prefer to just learn how to use property based testing you can use this repository just checkout to the branch write-tests.

Extra tasks:

  • Change the initial number of maxibons to be configurable.
  • Add the verbose modifier to the properties to review if the generation is working fine.
  • Change your production code to check if your tests fail or not.
  • Configure the number of generations used per property.

This repository is ready to build the application, pass the checkstyle and your tests in Travis-CI environments.

License

Copyright 2017 Karumi

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.

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].