== TestUnit * still works on its own * supports should good enough * works inside test/spec == CustomTestUnitSubclass * truth == test/spec * has should.satisfy * has should.equal * has should.raise * has should.raise with a block * should.raise should return the exception * has should.be.an.instance_of * has should.be.nil * has should.include * has should.be.a.kind_of * has should.match * has should.be * has should.not.raise * has should.not.satisfy * has should.not.be * has should.not.equal * has should.not.match * has should.throw * has should.not.throw * has should.respond_to * has should.be_close * multiple negation works * has should.<predicate> * has should.<predicate>? * has should <operator> (>, >=, <, <=, ===) * is robust against careless users * should detect warnings * should message/blame faults * should allow for custom shoulds * disabled specification (disabled) * empty specification (disabled) === more disabled * this is intentional (disabled) * an empty specification (empty) ==== even more disabled * we can cut out (disabled) * entire contexts, now (disabled) == setup/teardown * run in the right order == before all * runs parent before all == nested teardown === nested * should call local teardown then parent teardown == before all === nested * should call parent then local == after all === after nested * should call local then parent == contexts * are defined in class scope * can include modules == contexts with subclasses * use the supplied class as the superclass * truth == xcontexts with subclasses * work great! (disabled) * truth == Shared contexts * can be included several times * can include other shared contexts * can be included several times * can include other shared contexts * can be nested * can access data * should raise when the context cannot be found == SpecDox * can unmangle Test::Unit names correctly * can unmangle Test::Spec names correctly * has sensible fallbacks == flexmock * can not be found. BAIL OUT! (empty) == mocha * can not be found. BAIL OUT! (empty) == Outer context === Inner context * is nested (empty) * has multiple empty specifications (empty) === Second Inner context * is indented properly (empty) * still runs in order of definition (empty) ==== Inmost context * works too! (empty) * whoo! (empty) == A new-style description * should run before-clauses * should behave like context/specify * this is disabled (disabled) * should raise on unimplement{ed,able} before/after * should work as well with shared descriptions === when nested * should work == An disabled description * should not be run (disabled) == should.output * works for print * works for puts * works with readline == Context First * runs before Second == Context Second * runs before Last == Context Last * runs last 80 specifications, 8 disabled, 9 empty (602 requirements), 0 failures