5.编写测试
public class ProviderTypeTest { //测试数据 public static ProviderTypeData providerTypeData_AddProviderType = new ProviderTypeData( "\\TestDatas\\ProviderTypeData_AddProviderType.csv"); public ProviderTypeTest() { } [Trait("TPS", "供应商分类")] [Theory(DisplayName = "0001_验证数据_空数据_抛出")] [MemberData("providerTypeData_AddProviderType")] public void ValidData_EmptyData_ThrowException( string providerTypeName, string providerCode, string parentCode) { //do test } } |
简单说明一下:
1.测试数据需要是公共静态属性,在声明时实例化。
2.xUnit与MSTest在特性和断言的使用上有区别,见附录。
3.Trait特性声明了测试的分类,可以在VS的测试资源管理器中按特征查看。
选择特征
效果
4.Theory特性声明当前测试方法需要测试数据作为参数。
5.如果定义了Skip的值,那么测试将会被自动跳过。
[Theory(DisplayName = "0001_验证数据_空数据_抛出", Skip = "未完成")] |
被跳过的测试
6.MemberData特性声明了测试需要的数据源。
调试测试,结果如下:
调试测试结果
有三条测试数据,就会执行三次测试,测试结果如下:
测试结果
(请忽略测试的时间,因为我在截图调试结果)
以上,我们就可以实现数据驱动的测试。
附录
Attribute标记对比:
Assertions断言对比: