Introduction
The Athena::Spec
component provides common/helpful Spec compliant testing utilities.
Note
This component is NOT a standalone testing framework, but is fully intended to be mixed with standard describe
, it
, and/or pending
blocks depending on which approach makes the most sense for what is being tested.
Installation#
First, install the component by adding the following to your shard.yml
, then running shards install
:
dependencies:
athena-spec:
github: athena-framework/spec
version: ~> 0.3.0
Usage#
A core focus of this component is allowing for a more classic unit testing approach that makes it easy to share/reduce test code duplication. ASPEC::TestCase being the core type of this.
The primary benefit of this approach is that logic is more easily shared/reused as compared to the normal block based approach. I.e. a component can provide a base test case type that can be inherited from, a few methods implemented, and tada. For example, AVD::Spec::ConstraintValidatorTestCase.
struct ExampleSpec < ASPEC::TestCase
def test_add : Nil
(1 + 2).should eq 3
end
end
Tip
The ASPEC::TestCase::DataProvider and ASPEC::TestCase::TestWith annotations can make testing similar code with different inputs super easy!