public async Task BasicTest() { A.CallTo(() => _repo.GetString()) .ReturnsNextFromSequence(new [] { Task.FromException<string>(new Exception()), Task.FromResult("2"), Task.FromResult("3") }); Assert.ThrowsAsync<Exception>(async () => { await _cache.GetSomething(); }); var result = await _cache.GetSomething(); Assert.AreEqual(result, "2"); var nextResult = await _cache.GetSomething(); Assert.AreEqual(nextResult, "2"); }