链接:C#刘铁锰P28单元测试
电风扇案例:兄弟们使用的是.net Framework框架哦,.net core其实一样的
using System;
namespace Interface4UnitTesting
{
/// <summary>
/// 单元测试:生产电扇,电扇里面有个电源,转速高电源的电流就大,还有电流保护
/// 依赖关系:电扇依赖在电流上
/// 先紧耦合,再用接口松开,再单元测试
/// </summary>
class Program
{
static void Main(string[] args)
{
var fan = new DeskFan(new PowerSupply());
Console.WriteLine(fan.Work());
Console.ReadLine();
}
}
public interface IPowerSupply
{
int GetPower();//将下面所有耦合的改为接口类型
}
public class PowerSupply :IPowerSupply//电源输出类
{
public int GetPower()
{
return 100;
}
}
public class DeskFan//电扇类
{
private IPowerSupply _powerSupply;//紧耦合
public DeskFan(IPowerSupply powerSupply)//构造器,传入一个电源
{
_powerSupply = powerSupply;
}
public string Work()
{
int power = _powerSupply.GetPower();
if (power <= 0)
{
return "Won't work.";
}
else if (power<100)
{
return "slow";
}
else if (power<200)
{
return "Work fine.";
}
else
{
return "Warning!";
}
}
}
}
此时需要对上述代码进行单元测试,使用的是VS2019,本文使用了三种方法实现了单元测试。
1、 法一,使用xUint测试项目
加入测试项目,右击解决方案,选择添加,选择新建项目,如下图所示:
点击新建项目后输入xunit或者测试双击下图被选中的项目即可。

本文介绍了如何使用xUnit、NUnit和Moq对C#代码进行单元测试。通过一个电扇与电源交互的示例,展示了如何构造测试场景,包括紧耦合到接口松耦合的转换,以及利用Mock对象避免创建实体类。文章详细阐述了每个测试框架的用法,并给出了具体的测试用例和测试结果。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



