Thank you - that worked brilliantly. I'm using a Java load testing
tool called The Grinder and it has an instrumented HTTP library that
is dependent on running within The Grinder. So I have clj-http for
developing my tests and then I can drop them into load testing and
substitute the Grinder using with-redefs. Works so nicely. Loving
Clojure - wonderful for test automation.

On Nov 30, 8:13 pm, gaz jones <gareth.e.jo...@gmail.com> wrote:
> what about just re-defing the function inside the tests to the
> instrumented version?
>
> something like:
>
> (ns one.http)
> (defn get [] ...)
>
> (ns one.http-instrumented)
> (defn get [] ...)
>
> (ns one.test.blah)
> (with-redefs [one.http/get one.http-instrumented/get]
>   ...)
>
> guess you could put the redefs into a function and use it as a fixture
> if you're using clojure.test? that would get rid of the flag and fork
> in the code O_o
>
>
>
>
>
>
>
> On Wed, Nov 30, 2011 at 5:53 PM,AndyK<andy.kri...@gmail.com> wrote:
> > I have Clojure code which makes HTTP requests to a server. Depending
> > on the context, I want to swap out the underlying HTTP library code.
> > For example, I use an instrumented library in a testing context and a
> > different library in a REPL context where the instrumented library
> > will not work. These are low-lying functions - the http/get and http/
> > put - called within other functions for doing specific kinds of
> > requests which are called in turn by other functions.
>
> > What I'm wondering is what are good ways to dynamically choose which
> > versions of those low-lying functions to use?
>
> > For now, I'm doing this within the namespace that uses the low-lying
> > functions..
>
> > (def get (if (context-flag?) ns.one.http-instrumented/get ns.two.http-
> > repl/get))
>
> > What I don't like about this is that context-flag feeling like a hacky
> > approach.
>
> > Thoughts?
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Clojure" group.
> > To post to this group, send email to clojure@googlegroups.com
> > Note that posts from new members are moderated - please be patient with 
> > your first post.
> > To unsubscribe from this group, send email to
> > clojure+unsubscr...@googlegroups.com
> > For more options, visit this group at
> >http://groups.google.com/group/clojure?hl=en

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to