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