"Khi" cung cấp cho bạn tùy chọn để có các thiết lập khác nhau cho cùng một đối tượng giả, tùy thuộc vào bất kỳ điều gì bạn phải quyết định. Giả sử bạn muốn thử nghiệm một nhà cung cấp định dạng mà bạn đã viết. Nếu chương trình (= test) chạy vào buổi sáng, một hàm gọi nào đó sẽ trả về null; vào buổi chiều một giá trị nhất định. Sau đó, bạn có thể sử dụng "When" để viết các thiết lập có điều kiện.
var mockedService = new Mock<IFormatProvider>();
mockedService.When(() => DateTime.Now.Hour < 12).Setup(x => x.GetFormat(typeof(string))).Returns(null);
mockedService.When(() => DateTime.Now.Hour >= 12).Setup(x => x.GetFormat(typeof(string))).Returns(42);