Lambda Behave Framework overview

A modern testing and behavioural specification framework for Java 8
23 August 2017   1769

Framework's goal is to make testing a more pleasant experience than it currently is.

One of the goals of the framework is to achieve great readability. The syntax encourages to describe test cases using full sentences rather just a few words.


The Lambda Behave Specification design has several goals:

  • To read like plain English.
  • To encourage describing tests using long and descriptive sentences, rather than a few words.
  • An API that is fluent and discoverable nearly entirely through IDE auto-completion.

There are many, many, expectations builtin to the framework - not just isEmpty().

Every specification suite starts its declaration using the Suite.describe method. From that point onwards your IDE should be able to auto-complete the domain specific language for declaring specifications, but just in case you want more information, here's the details.

  • If you want to specify a property about your system use it.should.
  • If you want describe an expectation of that property, use expect.that. This will get you to a fluent API restricted to the type of value that you're making the expectation about. The expectation system is based upon hamcrest. Lambda Behave doesn't compromise the ability to compose matchers in favour of fluency - if you want to compose in more complex flavours simply use expect.that(value).is() and then you can use regular Hamcrest matchers. In my experience this is a rare, albeit useful, breakout option.
  • If you want to setup or teardown data before or after each specification use it.isSetupWith and it.isConcludedWith.
  • If you want to setup or teardown data before or after each suite use it.initializesWith and it.completesWith.
  • Don't worry - I know some Java 8 lambdafied APIs don't deal with exceptions very well but you can throw exceptions in all our callbacks and the appropriate error will be reported, not just break the library.

More info available at GitHub

TIOBE Index June 2019 to be Rolled Out

Java is still on the top, but experts noted fast growth of Python search queries, and they believe it can reach 1st place in 3-4 years
13 June 2019   319

June 2019 TIOBE Index has been released. Analysts noted a sharp increase in the proportion of searches for Python.

This month Python has reached again an all time high in TIOBE index of 8.5%. If Python can keep this pace, it will probably replace C and Java in 3 to 4 years time, thus becoming the most popular programming language of the world. The main reason for this is that software engineering is booming. It attracts lots of newcomers to the field. Java's way of programming is too verbose for beginners. In order to fully understand and run a simple program such as "hello world" in Java you need to have knowledge of classes, static methods and packages. In C this is a bit easier, but then you will be hit in the face with explicit memory management. In Python this is just a one-liner. 


Experts attributed the growing popularity of Python to the fact that now many have hit the development of software. And newcomers prefer Python - succinct and concise. According to analysts, Java for beginners is too verbose, and C sooner or later will force to understand the intricacies of memory management.