示例#1
0
        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);
        }
示例#2
0
        public void ReadLine()
        {
            var logSystem = new LogSystem();

            logSystem.OpenRead(new StubReader());

            var result = logSystem.ReadLine();

            Assert.AreEqual("运行正常", result);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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);
        }