C#单元测试用例的使用方法

当我们写好一段代码后,我们不能一直在这段代码集中写实行的例子,需要自己构建单元测试用例,操作步骤如下:

在解决方案中新建项目

C#单元测试用例的使用方法_第1张图片

使用xunit这个工具来建立单元测试。

这里写一段机器内部依靠电池供电量来运转的情况。

using System;

namespace UnitTestExample
{
   public class Program
    {
        static void Main(string[] args)
        {
            DeskFan desk = new DeskFan(new engine());
            Console.WriteLine(desk.Work());
        }
    }
    public interface IPowerSupply
    {
        int PowerSupply();
    }
    public class engine : IPowerSupply
    {
        public int PowerSupply()
        {
            return 110;
        }
    }
    public class sumsang : IPowerSupply
    {
        public int PowerSupply()
        {
            return 220;
        }
    }
    public class DeskFan
    {
        private IPowerSupply _powersupply;
        public DeskFan(IPowerSupply powersupply)
        {
            _powersupply = powersupply;
        }
        public string Work()
        {
            int power = _powersupply.PowerSupply();
            if (power <= 0)
            {
                return "Won't work";
            }else if (power<100){
                return "Slow";
            }else if (power < 200)
            {
                return "Work fine";
            }
            return "warning!";
        }
    }

}

单元测试构建如下

using System;
using Xunit;
using UnitTestExample;
using Moq;

namespace XUnitTestProject
{
    public class UnitTest1
    {
        [Fact]
        public void Test1()
        {
            var desk = new DeskFan(new powerlowerthan());
            var target = "Won't work";
            var actual = desk.Work();
            Assert.Equal(target, actual);
        }
        [Fact]
        public void Test2()
        {
            var Mock = new Mock();
            Mock.Setup(ps => ps.PowerSupply()).Returns(() => 200);
            var desk = new DeskFan(Mock.Object);
            var target = "warning!";
            var actual = desk.Work();
            Assert.Equal(target, actual);
        }
    }
    public class powerlowerthan : IPowerSupply
    {
        public int PowerSupply()
        {
            return 0;
        }
    }

}

可以看到有两种写法,第一种是自己写类去进行测试,另外一种是根据工具Moq来自己创建测试类,推荐使用Moq,比较简洁。

Moq下载方式:右键解决方案->管理解决方案的Nuget程序包,然后在里面搜索Moq,安装即可。

你可能感兴趣的:(C#,&,.NET)