Describe("#SetAdd", func() { It("calls SADD on the redis connection", func() { saddCalled := false elements := []string{"one", "two"} fakeConnection.RespondToDo(func(command string, args ...interface{}) (interface{}, error) { saddCalled = true Expect(command).To(Equal("SADD")) Expect(args[0]).To(HaveLen(2)) Expect(args[0].([]interface{})[0]).To(Equal("my key")) Expect(args[0].([]interface{})[1]).To(Equal(elements)) return int64(1), nil }) err := commander.SetAdd("my key", elements...) Expect(err).To(BeNil()) Expect(saddCalled).To(BeTrue()) }) }) Describe("#GetMembersOfSet", func() { It("calls SMEMBERS on the redis connection and returns a list of strings", func() { var getMembersCalled bool fakeConnection.RespondToDo(func(command string, args ...interface{}) (interface{}, error) { getMembersCalled = true Expect(command).To(Equal("SMEMBERS")) Expect(args[0]).To(HaveLen(1)) Expect(args[0].([]interface{})[0]).To(Equal("my key"))