Easytest

makes you write tests easily

Easytest is a tiny testing framework for Ruby with a familiar DSL.

Installation

Add this line to your Gemfile for Bundler:

gem "easytest"

Or install it via gem:

gem install easytest

Documentation

You can read more about Easytest on the official website.

Usage

This section explains easy usage.

First, put test/addition_test.rb as below:

require "easytest"

extend Easytest::DSL

test "addition" do
  expect(1 + 2).to_eq 2
end

Then, run easytest:

$ easytest
 FAIL  test/addition_test.rb
  ✕ addition  (should equal)

    Expected: 2
    Received: 3

    # test/addition_test.rb:6:in `block in <top (required)>'


Tests:  1 failed, 0 passed, 1 total (1 files)
Time:   0.00087 seconds

Oops. Let’s fix the failure:

- expect(1 + 2).to_eq 2
+ expect(1 + 2).to_eq 3

Then, run it again:

$ easytest
 PASS  test/addition_test.rb

Tests:  1 passed, 1 total (1 files)
Time:   0.00077 seconds

The test now passes! 🎉

Hooks

You can add hooks called before and after to each test case:

before do
  # set up something...
end

after do
  # clean up something...
end

test "something" do
  # test something...
end

Skip

If you want to skip any cases, you can change test to skip:

- test "addition" do
+ skip "addition" do

Skipped cases will be reported as “skipped”.

Only

If you want to run only any cases, you can use test to only:

- test "addition" do
+ only "addition" do

Only cases with only will be run, and other cases will be skipped.

To-do

If you want to write to-do cases, you can use test without a block:

test "addition"

To-do cases will be reported as “todo”.

Watch

If you want to run tests immediately when changing code, specify the --watch option:

easytest --watch

This watch mode is useful during development.