rspec-nlet
One day I was testing some command line tool I built with Ruby and I tried to write a test code like this.
let(:msg, :status) { Open3.capture2e(command) }
But I realized RSpec didn't allow you to define multiple helpers with let
at once.
So I created a gem for it! rspec-nlet
I'm aware that the use cases of this gem is very rare haha.
Usage
You can define a single helper or multiples helpers with it at once.
You get errors if the names and returned values from the block don't match.
You can read README for details.
# define multiple helpers
> let(:one, :two, :three) { [1,2,3] }
> one # => 1
> two # => 2
> three # => 3
# define a helper
> let(:single) { 'single' }
> single # => 'single'
# raise an error when too few names are passed
> let(:too, :few) { [1,2,3] }
> few # => StandardError (Too few names)
# raise an error when too many names are passed
> let(:too, :many) { [1] }
> many # => StandardError (Too many names)
Note
This feature was actually proposed to rspec-core in the past.
https://github.com/rspec/rspec-core/issues/1650
But it was rejected for a couple of reasons:
-
lets
is not a good name - not so many use cases
- handling corner cases
But it can live outside as a gem!
Thank you for reading!
Top comments (0)