using System.Collections.Generic;
public interface IMyInterface
public static void Main()
var mock = new Mock<IMyInterface>(MockBehavior.Strict);
var valuesForFirst = new List<int>() { 0 };
var valuesForNext = new List<int>() { 1 };
mock.Setup(x => x.GetValues()).Returns(() => invocations++ == 0 ? valuesForFirst : valuesForNext);
for (var i = 0; i < 10; i++)
var lst = mock.Object.GetValues();
Console.WriteLine($"{i:000}: {string.Join(", ", lst)}");