public void ReadLineAt6(int i) { var logSystem = new LogSystem(); // 新建一个ILogReader的Mock对象,其Object属性即为我们需要的伪对象 var fakeReader = new Mock <ILogReader>(); // 当调用ILogReader接口的ReadLineAt()方法,并传入[0,10]范围的int类型参数时,将返回运行正常字符串 fakeReader.Setup(fake => fake.ReadLineAt(It.IsInRange <int>(0, 10, Range.Inclusive))).Returns("运行正常"); // 当调用ILogReader接口的ReadLineAt()方法,并传入(int.MinValue,0)范围的int类型参数时, // 抛出ArgumentOutOfRangeException异常 fakeReader.Setup(fake => fake.ReadLineAt(It.IsInRange <int>(int.MinValue, 0, Range.Exclusive))) .Throws <ArgumentOutOfRangeException>(); // 当调用ILogReader接口的ReadLineAt()方法,并传入(10,int.MaxValue)范围的int类型参数时, // 抛出ArgumentOutOfRangeException异常 fakeReader.Setup(fake => fake.ReadLineAt(It.IsInRange <int>(10, int.MaxValue, Range.Exclusive))) .Throws <ArgumentOutOfRangeException>(); //将伪对象注入到被测试类 logSystem.OpenRead(fakeReader.Object); var result = logSystem.ReadLineAt(i); Assert.AreEqual("查无此行", result); }
public void ReadLine() { var logSystem = new LogSystem(); logSystem.OpenRead(new StubReader()); var result = logSystem.ReadLine(); Assert.AreEqual("运行正常", result); }
public void ReadLine() { var logSystem = new LogSystem(); // 新建一个ILogReader的Mock对象,其Object属性即为我们需要的伪对象 var fakeReader = new Mock <ILogReader>(); // 当调用ILogReader接口的ReadLine()方法时,将返回运行正常字符串 fakeReader.Setup(fake => fake.ReadLine()).Returns("运行正常"); //将伪对象注入到被测试类 logSystem.OpenRead(fakeReader.Object); var result = logSystem.ReadLine(); Assert.AreEqual("运行正常", result); }
public void ReadLineAt4() { var logSystem = new LogSystem(); // 新建一个ILogReader的Mock对象,其Object属性即为我们需要的伪对象 var fakeReader = new Mock <ILogReader>(); // 当调用ILogReader接口的ReadLineAt(-1)方法时,抛出ArgumentOutOfRangeException异常 fakeReader.Setup(fake => fake.ReadLineAt(-1)).Throws <ArgumentOutOfRangeException>(); //将伪对象注入到被测试类 logSystem.OpenRead(fakeReader.Object); var result = logSystem.ReadLineAt(-1); Assert.AreEqual("查无此行", result); }
public void Find(string s) { var logSystem = new LogSystem(); // 新建一个ILogReader的Mock对象,其Object属性即为我们需要的伪对象 var fakeReader = new Mock <ILogReader>(); // 当调用ILogReader接口的Find()方法,并传入任意string类型参数时,将返回$"{/*输入参数字符串*/}的位置在line1"字符串 fakeReader.Setup(fake => fake.Find(It.IsAny <string>())).Returns((string value) => $"{value}的位置在line1"); //将伪对象注入到被测试类 logSystem.OpenRead(fakeReader.Object); var result = logSystem.Find(s); Assert.AreEqual($"{s}的位置在line1", result); }
public void ReadLine2() { var logSystem = new LogSystem(); // 新建一个ILogReader的Mock对象,其Object属性即为我们需要的伪对象 var fakeReader = new Mock <ILogReader>(); // 伪造ILogReader接口的CurrentLine属性时,并且赋初值为3 fakeReader.SetupProperty(fake => fake.CurrentLine, 3); // 当调用ILogReader接口的ReadLine()方法时,触发回调函数,将伪对象的CurrentLine属性值+1 fakeReader.Setup(fake => fake.ReadLine()).Callback(() => fakeReader.Object.CurrentLine++); //将伪对象注入到被测试类 logSystem.OpenRead(fakeReader.Object); logSystem.ReadLine(); Assert.AreEqual(4, logSystem.Reader.CurrentLine); }
public void ReadAll() { var logSystem = new LogSystem(); // 新建一个ILogReader的Mock对象,其Object属性即为我们需要的伪对象 var fakeReader = new Mock <ILogReader>(); // 当连续调用ILogReader接口的ReadLine()方法时,依次返回"运行正常","运行异常","存储空间不足" // 并在最后抛出InvalidOperationException异常 fakeReader.SetupSequence(fake => fake.ReadLine()) .Returns("运行正常") .Returns("运行异常") .Returns("存储空间不足") .Throws <InvalidOperationException>(); //将伪对象注入到被测试类 logSystem.OpenRead(fakeReader.Object); var result = logSystem.ReadAll(); Assert.AreEqual("运行正常;运行异常;存储空间不足;", result); }