Hacker News new | ask | show | jobs
by srbaker 1869 days ago
I think this format is the logical conclusion, and improvement over, mixing what are effectively global assertions on to every object.

The ideal is a single method (call it `assert` if you want) that takes a block, and does the right thing, is the overall best.

1 comments

Jim Weirich wrote rspec-given. This gem allows one to write really nice assertions:

    Given { @stack = Stack.new }
    When { @stack.push(1) }
    Then { @stack.peek == 1 }
    And { @stack.size == 1 }
What you wish for is embedded in When and And. Check it out: https://github.com/jimweirich/rspec-given
The biggest benefit in my mind of rspec-given is that it allows you to combine the speed benefits of running the test setup once (When) with the clarity of granular assertions that report failures independently (Then).