Checkov v0.2.0 Checkov

Checkov aims to emulate the data driven testing functionality of the Spock Framework

A where block can be used in a data_test to exercise the assertions of the test multiple times.

defmodule MyModuleTest do
  use ExUnit.Case
  import Checkov

  data_test "#{a} + #{b} == #{result}" do
    assert a + b == result

    where [
      [:a, :b, :result],
      [1, 2, 3],
      [4, 5, 9],
      [1.2, 3.4, 4.6],
    ]
  end

end

Will create and run three tests.

MyModuleTest
* test 4 + 5 == 9 (0.00ms)
* test 1 + 2 == 3 (0.00ms)
* test 1.2 + 3.4 == 4.6 (0.00ms)


Finished in 0.03 seconds
3 tests, 0 failures

Checkov also support an alternative syntax, below will create and run the same three tests.

defmodule MyModuleTest do
  use ExUnit.Case
  import Checkov

  data_test "#{a} + #{b} == #{result}" do
    assert a + b == result

    where a:      [1, 4, 1.2],
          b:      [2, 5, 3.4],
          result: [3, 9, 4.6]

  end

end

Data tests also accept an optional second paramter where you can receive the context from a setup block. Any variable created in there where block is available to be used in the name of the test!

Link to this section Summary

Link to this section Functions

Link to this macro data_test(name, context \\ quote() do %{} end, list) (macro)