Assertive Expressive
DESCRIPTION
Assertive Expressive (AE) is an assertions framework intended for reuse by any TDD, BDD or similar system.
FEATURES/ISSUES
-
Clear, simple and concise syntax.
-
Uses higher-order functions and fluid notation.
-
Reusable core extensions ease assertion construction.
-
Core extensions are standardized around Ruby Facets.
-
Facets is an optional dependency; extensions are built-in.
-
Easily extensible allowing for alternate notations.
-
Eats it’s own dog food.
RELEASE NOTES
Please see HISTORY file.
SYNOPSIS
AE defines the method assert
. It’s is compatible with the method as defined by Test::Unit and minitest, which verifies truth of a single argument (and can accept an optional failure message).
assert(true)
In addition AE’s assert
method has been extended to accept a block, the result of which is likewise verified.
assert{true}
But the real power the AE’s assert
method lies in it’s use without argument or block. In that case it returns an instance of Assertor
. An Assertor
is an Assertions Functor, or Higher-Order Function. It is a function that operates on another function. With it, we can make assertions like so:
x.assert == y
a.assert.include? e
StandardError.assert.raised? do
...
end
And so forth. Any method can be used in conjunction with assert
to make an assertion. Eg.
class String
def daffy?
/daffy/i =~ self
end
end
"Daffy Duck".assert.daffy?
Please have a look at the QEDocs and RDocs to learn more.
HOW TO INSTALL
Gem Installs
AE releases it’s gems via Gemcutter. If you don’t have Gemcutter installed do:
$ gem install gemcutter
$ gem tumble
Then you can install AE with:
$ gem install ae
Site Installs
Local installation requires Setup.rb.
$ gem install setup
Then download the tarball package from GitHub (under pack/ directory) and do:
$ tar -xvzf ae-1.0.0.tgz
$ cd ae-1.0.0.tgz
$ sudo setup.rb all
Windows users use ‘ruby setup.rb all’.
COPYRIGHTS & LICENSE
Copyright © 2008 Thomas Sawyer
Unless otherwise provided for by the originating author, this program is distributed under the terms of the MIT license.
See LICENSE file for details.