mini_shoulda icon indicating copy to clipboard operation
mini_shoulda copied to clipboard

A minimal shoulda DSL built on top of MiniTest::Spec.

= Deprecated

== Please use the minitest-spec-rails gem and enable mini_shoulda

  • https://github.com/metaskills/minitest-spec-rails
  • https://github.com/metaskills/minitest-spec-rails#mini_shoulda

= MiniShoulda

A minimal shoulda DSL built on top of MiniTest::Spec. MiniTest is the future, and we should all be using it! No pun. The MiniShoulda gem is a simple set of alias built on top of MiniTest so that we can use basic shoulda syntax. A simple example says it all.

class MyTestClass < MiniTest::Spec

setup do
  @object = Object.new
end

teardown do
  @object.freeze
end

should 'find object' do
  assert @object
  refute_instance_of Object, @object
end

should_eventually 'works too' do
  refute true, 'will use skip and not run'
end

context 'with another context' do

  setup do
    @object = [1,2,3]
  end

  should 'just work' do
    assert_includes @object, 2
  end

end

end

= Install

$ gem install mini_shoulda

= What About ActiveRecord Macros

It is not my goal to implement all the ActiveRecord macros nor things like should_have_db_columns :)

= Any Hacks?

Not really. MiniShoulda is built on top of the existing MiniTest::Spec methods. Basically they are just a series of aliases to those methods. Our only monkey patch is in MiniTest's Kernel#describe method so you can maintain class scope in your own test cases. Please help me lobby the MiniTest team to get that patch in.

  • https://github.com/seattlerb/minitest/pull/9