This works perfectly for me

func newReq(method, path, body string, vars map[string]string) 
*http.Request {
r := httptest.NewRequest(method, path, strings.NewReader(body))
return mux.SetURLVars(r, vars)
}


On Tuesday, May 12, 2015 at 7:34:21 PM UTC+5:30 al...@getloopd.com wrote:

> Awesome! This works great Thomas :)
>
>
> On Monday, August 25, 2014 at 3:21:08 PM UTC+8, Thomas Bruyelle wrote:
>>
>> I found a solution that doesn't require you to manually add the mux Vars 
>> in your tests or use the mux Context.
>>
>> The key is to create your mux router in a separate function like that
>>
>> func Router() *mux.Router {
>>   r := mux.Router()
>>   r.HandleFunc("/employees/{1}", employeeHandler)
>>   (...)
>>   return r
>> }
>>
>> func init() {
>> http.Handle("/", Router())
>> }
>>
>> Then in your tests, you can use directly the Router(), just like that 
>>
>> func TestEmployeeHandler(t *testing.T) {
>>   r := http.NewRequest("GET", "employees/1 
>> <http://localhost:3000/employees/1>", nil)
>>   w := httptest.NewRecorder()
>>
>>  Router().ServeHTTP(w, r)
>>
>>   ... 
>>
>> }
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/b08616c5-05da-451a-9cbe-d969cc7ca00fn%40googlegroups.com.

Reply via email to