Nice work Oliy. I especially liked the re-frame section as I work at Day8
on re-frame. I liked what you did with the HTTP handler, much cleaner :)

On Fri, Nov 11, 2016 at 1:15 AM Oliver Hine <oliyh...@gmail.com> wrote:

> Hi Erik,
>
> One of the philosophies of Martian was that it was not a "closed" system
> so that it made no demands on the server, and you can use it with servers
> that aren't yours and can't be changed. What you're describing is very much
> server-side testing, so Martian doesn't help directly there.
>
> However, the description of endpoints using metadata is exactly how
> pedestal-api <https://github.com/oliyh/pedestal-api> works using Schema.
> In pedestal your routes are just a data structure so it would be easy to
> walk them, pull out the schema for the parameters of each handler and
> exercise them using test.check.
> This is quite an interesting idea that would work well for "pure" handlers
> with no side effects, but once you add databases and things to the mix it
> could get trickier.
>
> Let me know if you need any pointers on how to go about this.
>
> Oliy
>
>
>
> On Thursday, 10 November 2016 10:20:01 UTC, Erik Assum wrote:
>
> Hi Oliy,
>
> In some ways this resonates with a thought I’ve had for a while, which
> sort of appeared while working on a spring-boot application in java.
>
> So in Spring-boot, you have classes annotated as controllers, methods
> annotated as request handlers which indicate what params and such they take.
> What I’d like (and which might very well exist, I haven’t researched this
> yet) was a tool that exercised the methods in the controllers, directly
> without involving http.
>
> So given something like this:
>
> @Controller
> public class MyController {
>
>   @RequestMapping(…)
>   public String helloWorld(@RequestParam(“name”) String name) {
>         return “Hello “ + name;
>   }
> }
>
> I’d like something that found all the controllers, invoked the methods
> annotated @RequestMethod with random data a la test.check
> and just verify that they returned “okish”, where I will not define
> “okish” for now.
>
> And of course, I’d like to do some of the same with my ring app, e.g.
> inspect all the routes in compojure, call the handlers (which I should have
> spec’ed)
> and have them called with random test.check data and verify that return
> “okish”
>
> I am aware of this being a huge oversimplification, with lots of pitfalls
> and undefined behaviours, but I still find it an interesting idea.
>
> Erik.
>
> On 10 Nov 2016, at 10:56, Oliver Hine <oliy...@gmail.com> wrote:
>
> Hi all,
>
> I wrote a blog post on some more advanced use of Martian, a library for
> abstracting HTTP integration with other systems.
>
> All these use cases leverage the fact that Martian separates your data
> (the *what*) from the HTTP implementation details (the *how*) and lets
> you get on with connecting systems in valuable ways.
>
> The blog post includes the following topics:
>
>    - Generative testing of HTTP integration
>    - Integration with non-swagger APIs
>    - REST as a side effect: integrating Martian with re-frame
>
> You can read it all here: http://juxt.pro/blog/posts/advanced-martian.html
>
> Thanks,
> Oliy
>
> https://github.com/oliyh/martian
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
>
> To post to this group, send email to clo...@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+u...@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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+u...@googlegroups.com.
>
>
> For more options, visit https://groups.google.com/d/optout.
>
> --
> 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 unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
-- 

Daniel

-- 
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 unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to