单元测试只专注于测试一个类或方法
每个测试用例由Arrange(测试数据)、Act(执行被测试方法)、Assert(断言,actual == expected?)
单元测试的命名规范:项目名/命名空间/类名+Tests
被测试的类的对应变量名一般叫sut(System Under Test)
没有参数的TestCase标注[Fact];
C#
/// <summary>
/// 给定两个数 计算结果要正确
/// </summary>
[Fact]
public void Test1()
{
//Arrange
int a = 1;
int b = 2;
//Act
Cash sut = new();
int sutResult = sut.add(a,b);
//Assert
int expectedResult = 3;
Assert.Equal(expectedResult, sutResult);
}
有参数的TestCase标注[Theory],然后使用[InlineData]等来提供测试数据。
C#
/// <summary>
/// 给定两个数 相除结果要正确
/// </summary>
[Theory]
[InlineData(2,1,2)]
[InlineData(10,2,5)]
public void Test2(int i ,int j,decimal result)
{
//Arrange
//Act
Cash sut = new();
decimal sutResult = sut.except(i, j);
//Assert
Assert.Equal(result, sutResult);
}