//[ExpectedException(typeof(Exception), "My ex")] public void TestMethod1() { var mock = new Mock <ILastUsernameProvider>(MockBehavior.Default); mock.Setup(lp => lp.ReadLastUserName()).Returns("Balkarov"); mock.Setup(lp => lp.SaveLastUserName(It.IsAny <string>())); ILastUsernameProvider lastUsernameProvider = mock.Object; Assert.AreEqual(lastUsernameProvider.ReadLastUserName(), "Balkarov"); var ex = Assert.Throws <Exception>(() => { Console.WriteLine("Hi man"); }); //lastUsernameProvider.SaveLastUserName("lll"); Assert.That(ex.Message == "Hi man"); mock.Verify(); }
// "Внутренний" предназначен только для тестирования и может принимать "фейк" public LoginViewModel(ILastUsernameProvider provider) { _provider = provider; UserName = _provider.ReadLastUserName(); }