Version 1.4.36 allows you to alter the context in which your tests run by creating a function that takes the "run the tests" function as an arg, and do you as wish.
Too abstract, no problem, the code:
That's it, if you add the previous function to your tests, you can define whatever you like in the in-context function, and your tests will be run in your custom context. The previous snippet is pulled from the expectations tests, which verify that success.success-examples-src/a-fn-to-be-rebound is correctly rebound. In the expectations tests an expectations_options.clj namespace is used to define in-context (expectations_options.clj explained here).
Why would you want to define your own context? In the past I've used
in-context
for two reasons: rebinding things I don't care about (e.g. calls to logging) to (constantly true)
, and rebinding things I never want called (e.g. create a new thread) to #(throw (RuntimeException. "not allowed in tests"))
I've been using in-context for about a month now, and it's worked well for me. Give it a shot and let me know how it's working for you.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.