) JustBeforeEach(func() { actualTask, err = controller.TaskByGuid(logger, taskGuid) }) Context("when reading a task from the DB succeeds", func() { var task *models.Task BeforeEach(func() { task = &models.Task{TaskGuid: taskGuid} fakeTaskDB.TaskByGuidReturns(task, nil) }) It("fetches task by guid", func() { Expect(fakeTaskDB.TaskByGuidCallCount()).To(Equal(1)) _, actualGuid := fakeTaskDB.TaskByGuidArgsForCall(0) Expect(actualGuid).To(Equal(taskGuid)) }) It("returns the task", func() { Expect(err).NotTo(HaveOccurred()) Expect(actualTask).To(Equal(task)) }) }) Context("when the DB errors out", func() { BeforeEach(func() { fakeTaskDB.TaskByGuidReturns(nil, errors.New("kaboom")) })