I am writing unit test for project written in revel framework. Revel itself provides testing framework but its more towards BDD test type. So I started with go test. The MyController.go file looks like below
type MyController struct {
*revel.Controller
}
func (c MyController) HealthCheckHandler() revel.Result {
responseBody, status := service.HealthService()
c.Response.Status = status
return c.RenderJSON(responseBody)
}
MyController_test.go file
func TestHealth(t *testing.T ){
myController := &MyController{
&revel.Controller{
Response:&revel.Response{
Status:200,
},
} ,
}
res := myController.HealthCheckHandler()
}
How can I mock HealthService() method ? If I use Interface-Composition way for mocking then how routes will inject the interface? As routes.go is self generated file.