logger = lager.NewLogger("test") logger.RegisterSink(lager.NewWriterSink(GinkgoWriter, lager.DEBUG)) responseRecorder = httptest.NewRecorder() handler = handlers.NewTaskHandler(logger, fakeTaskDB) }) Describe("Tasks", func() { BeforeEach(func() { task1 = models.Task{Domain: "domain-1"} task2 = models.Task{CellId: "cell-id"} requestBody = &models.TasksRequest{} }) JustBeforeEach(func() { request := newTestRequest(requestBody) handler.Tasks(responseRecorder, request) }) Context("when reading tasks from DB succeeds", func() { var tasks []*models.Task BeforeEach(func() { tasks = []*models.Task{&task1, &task2} fakeTaskDB.TasksReturns(tasks, nil) }) It("returns a list of task", func() { Expect(responseRecorder.Code).To(Equal(http.StatusOK)) response := models.TasksResponse{} err := response.Unmarshal(responseRecorder.Body.Bytes()) Expect(err).NotTo(HaveOccurred())