public void AppendLine2() { var logSystem = new LogSystem(); // 新建一个ILogWriter的Mock对象,其Object属性即为我们需要的伪对象 var fakeWriter = new Mock <ILogWriter>(); // 新建一个ISource的Mock对象,其Object属性即为我们需要的ISource伪对象 var fakeSource = new Mock <ISource>(); //将ISource伪对象注入到ILogWriter伪对象的属性 fakeWriter.SetupProperty(fake => fake.Source, fakeSource.Object); // 伪造ILogWriter接口的CurrentLine属性 fakeWriter.SetupProperty(fake => fake.CurrentLine); fakeWriter.Object.CurrentLine = 3; // 当连续调用ILogWriter接口的AppendLine方法,并输入任意string类型参数时,触发回调使伪对象CurrentLine属性的值+1 fakeWriter.Setup(fake => fake.AppendLine(It.IsAny <string>())) .Callback(() => fakeWriter.Object.CurrentLine++); //将伪对象注入到被测试类 logSystem.OpenAppend(fakeWriter.Object); logSystem.AppendLine("运行正常"); Assert.AreEqual(4, logSystem.Writer.CurrentLine); }
public void AppendLine2() { var logSystem = new LogSystem(); //todo //logSystem.OpenAppend(ILogWriter实例); logSystem.AppendLine("运行正常"); Assert.AreEqual(4, logSystem.Writer.CurrentLine); }