Contract and side effect testing for ruby and rspec