For all the API Developers and testers, a not so new API test framework is starting to catch a lot of limelight as we enter 2021.

So what makes this framework stand out ? Isn’t RestAssured enough? and why are we even spending our time to read about it ?

Well to start with, Karate framework has moved into the inner radar of ThoughtWorks, which makes it worthy of our little attention.

Let’s explore a few features it provides:

  1. BDD Syntax and a true DSL

The scripts in Karate look very similar to Cucumber-Gherkin feature files, but are the actual…


What is a Thread ?

Thread is the smallest unit of execution that can be scheduled by the OS.

What is a Task?

A task is a single unit of work performed by a Thread.

But then how do we define this work (or create a task for a thread)?

  • A common way is to use a Runnable Interface (we will implement it using Lambda expression)
Runnable runnable = () -> System.out.println("I am another Thread");
Thread anotherThread = new Thread(runnable);
anotherThread.start();
  • Or you create a Java class that implements a Runnable interface and then pass the instance of this class while creating an instance of Thread.
Thread someThread =…

No matter which industry you work in, how often have you been recognised for your contributions due to the factor that you are the only person in your team with the knowledge of the product or how certain tasks are accomplished.

It is the knowledge that you and only you hold which helps in progressing with the project delivery, making you irreplaceable in the team.

If you are not one of those people, I bet you know someone at your workplace who holds all the information making that individual a key resource. …


A major feature introduced to developers in Java 8 is language-level support for lambda expressions.

In a previous article, I gave a high-level overview of Lambda expressions in Java

What we want to avoid when using Lambda expressions is a feature introduced in Java 5 called Autoboxing and Unboxing. When dealing with primitive data types in Java, the compiler automatically converts a primitive type to an object (wrapper class) and vice-versa based on our code.

Using these primitive data types when implementing lambda expressions can have a performance hit due to additional processing of autoboxing and unboxing.

The java.util.function provides…


Lambda Expression?

Implements a Functional Interface

(if you read somewhere that it’s a way of writing instances of Anonymous classes — wipe out that definition — it is wrong)

But…then what is a Functional Interface?

  • an interface in Java (obviously)
  • but has a single abstract method (SAM)
  • default and static methods of an interface do not count when we talk about SAM (can have as many default/static methods as we like)
  • and nor we count the methods implemented by Object class like toString(), equals() or hashCode()
  • may or may not have an annotation @FunctionalInterface
  • is a method without a name that is used to pass around behaviour as…

Ish Mishra

Software Design Engineer in Test

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store