C# 单元测试案例

测试单元代码:

使用了Mock框架,得提前导入Moq程序包,使用Nuget搜索

using Moq;

namespace UnitTestProject1.test
{
    [TestClass]
    public class UnitTest1
    {
        [TestMethod]
        public void TestMethod1()
        {
            var mock = new Mock<IPower>();
            mock.Setup(pw => pw.GetPower()).Returns(() => 0);
            var powtest = new DeskFun(mock.Object);
            var expect = "不能工作";
            var actual = powtest.Work();
            Assert.AreEqual(expect, actual);
        }

        [TestMethod]
        public void warnWork()
        {
            var mock = new Mock<IPower>();
            mock.Setup(pw => pw.GetPower()).Returns(() => 220);
            var fun = new DeskFun(mock.Object);
            var expected = "警告";
            var actual = fun.Work();
            Assert.AreEqual(expected,actual);
        }
    }

}

测试类和接口:

 1 public interface IPower
 2 {
 3     int GetPower();
 4 }
 5 
 6 /// <summary>
 7 /// 接口实现方法
 8 /// </summary>
 9 public class PowerSupper : IPower
10 {
11     public int GetPower()
12     {
13         return 100;
14     }
15 }
16 
17 public class DeskFun
18 {
19     private IPower _powerSupper;
20 
21     public DeskFun(IPower powerSupper)
22     {
23         _powerSupper = powerSupper;
24     }
25 
26     /// <summary>
27     /// 工作方法
28     /// </summary>
29     /// <returns>返回工作状态</returns>
30     public string Work()
31     {
32         int power = _powerSupper.GetPower();
33 
34         if (power <= 0)
35         {
36             return "不能工作";
37         }
38         else if (power < 100)
39         {
40             return "工作慢";
41         }
42         else if (power < 200)
43         {
44             return "正常工作";
45         }
46         else
47         {
48             return "警告";
49         }
50     }

本文来自博客园,作者:云辰,转载请注明原文链接:https://www.cnblogs.com/yunchen/p/13885883.html

原文地址:https://www.cnblogs.com/yunchen/p/13885883.html