public YieldReturnSpec() { Describe("Method using yield return", () => { It("should call through by default.", () => { var result = TestSubject.Method().ToList(); Expect(result).ToEqual(new[] { 1, 2, 3, 5, 7 }); }); It("should do nothing if spied on.", () => { Jaz.SpyOn(typeof(TestSubject), nameof(TestSubject.Method)); var result = TestSubject.Method(); Expect(result).ToBeDefault(); }); It("should call through as configured.", () => { Jaz.SpyOn(typeof(TestSubject), nameof(TestSubject.Method)).And.CallThrough(); var result = TestSubject.Method().ToList(); Expect(result).ToEqual(new[] { 1, 2, 3, 5, 7 }); }); It("should throw an exception as configured.", () => { Jaz.SpyOn(typeof(TestSubject), nameof(TestSubject.Method)).And.Throw <TestException>(); Expect(() => TestSubject.Method()).ToThrow <TestException>(); }); It("should return the configured value.", () => { Jaz.SpyOn(typeof(TestSubject), nameof(TestSubject.Method)).And.ReturnValue(new[] { 4, 6, 8, 9 }); var result = TestSubject.Method().ToList(); Expect(result).ToEqual(new[] { 4, 6, 8, 9 }); }); }); }