Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Some people have expressed concern about performance since the Test blocks are executed even when you are not testing. This is mostly a non-issue for a few reasons.
1. The Test blocks generally only execute at load time. So once your app is loaded then it is like they are not there.
2. When not testing the Test block simply returns. So it is almost a no-op and doesn’t even store the block so no memory loss.
3. If it REALLY bothered you, then just define Kernel#Test as a no-op when not testing. For example:
# Stubs in dev or prod mode module Kernel def Test(*args, &blk); end def ForTest(*args, &blk); end end unless respond_to? :Test
Now you just have an empty method call which the runtime might even be able to optimize out.