空值的 Nunit 测试集合
Nunit testing collection for null value
我得到了这个文件我必须在::
上写一个nunit测试
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CollectionsLib
{
public class Employee
{
public int EmpId { get; set; }
public string EmpName { get; set; }
public double Salary { get; set; }
public DateTime DOJ { get; set; }
}
public class EmployeeManager
{
private static readonly List<Employee> employees;
static EmployeeManager()
{
employees = new List<Employee>
{
new Employee { EmpId=100, EmpName="John",DOJ=DateTime.Now.AddYears(-5),Salary=30000},
new Employee { EmpId=101, EmpName="Mary",DOJ=DateTime.Now.AddYears(-2),Salary=10000},
new Employee { EmpId=102, EmpName="Steve",DOJ=DateTime.Now.AddYears(-2),Salary=10000},
new Employee { EmpId=103, EmpName="Allen",DOJ=DateTime.Now.AddYears(-7),Salary=50000},
};
}
public List<Employee> GetEmployees()
{
return employees;
}
public List<Employee> GetEmployeesWhoJoinedInPreviousYears()
{
return employees.FindAll(x=>x.DOJ<DateTime.Now);
}
}
}
我的问题是:
- 如果我必须编写一个场景来测试此集合中没有空值,我该如何继续做呢??
它可能看起来像这样:
[Test]
public void GetEmployees_Should_NotReturnAnyNulls()
{
var manager = new EmployeeManager();
var employees = manager.GetEmployees();
foreach(var employee in employees)
{
Assert.NotNull(employee);
}
}
或者甚至更好,使用这样的 nuget FluentAssertions:
[Test]
public void GetEmployees_Should_NotReturnAnyNulls()
{
var manager = new EmployeeManager();
var employees = manager.GetEmployees();
employees.Should().NotContainNulls();
}
要测试列表是否没有空成员,您可以在 NUnit 中使用多种形式的断言,按照我个人的偏好顺序列出...
Assert.That(someList, Is.All.Not.Null);
Assert.That(someList, Has.None.Null);
Assert.That(someList, Has.All.Not.Null);
Assert.That(someList, Does.Not.Contain(null);
CollectionAssert.AllItemsAreNotNull(someList);
在每种情况下,someList
是您要测试的列表。
如果您查看 https://docs.nunit.org/articles/nunit/intro.html 上的文档,您可能还会找到其他选项!随你挑! :-)
我得到了这个文件我必须在::
上写一个nunit测试using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CollectionsLib
{
public class Employee
{
public int EmpId { get; set; }
public string EmpName { get; set; }
public double Salary { get; set; }
public DateTime DOJ { get; set; }
}
public class EmployeeManager
{
private static readonly List<Employee> employees;
static EmployeeManager()
{
employees = new List<Employee>
{
new Employee { EmpId=100, EmpName="John",DOJ=DateTime.Now.AddYears(-5),Salary=30000},
new Employee { EmpId=101, EmpName="Mary",DOJ=DateTime.Now.AddYears(-2),Salary=10000},
new Employee { EmpId=102, EmpName="Steve",DOJ=DateTime.Now.AddYears(-2),Salary=10000},
new Employee { EmpId=103, EmpName="Allen",DOJ=DateTime.Now.AddYears(-7),Salary=50000},
};
}
public List<Employee> GetEmployees()
{
return employees;
}
public List<Employee> GetEmployeesWhoJoinedInPreviousYears()
{
return employees.FindAll(x=>x.DOJ<DateTime.Now);
}
}
}
我的问题是:
- 如果我必须编写一个场景来测试此集合中没有空值,我该如何继续做呢??
它可能看起来像这样:
[Test]
public void GetEmployees_Should_NotReturnAnyNulls()
{
var manager = new EmployeeManager();
var employees = manager.GetEmployees();
foreach(var employee in employees)
{
Assert.NotNull(employee);
}
}
或者甚至更好,使用这样的 nuget FluentAssertions:
[Test]
public void GetEmployees_Should_NotReturnAnyNulls()
{
var manager = new EmployeeManager();
var employees = manager.GetEmployees();
employees.Should().NotContainNulls();
}
要测试列表是否没有空成员,您可以在 NUnit 中使用多种形式的断言,按照我个人的偏好顺序列出...
Assert.That(someList, Is.All.Not.Null);
Assert.That(someList, Has.None.Null);
Assert.That(someList, Has.All.Not.Null);
Assert.That(someList, Does.Not.Contain(null);
CollectionAssert.AllItemsAreNotNull(someList);
在每种情况下,someList
是您要测试的列表。
如果您查看 https://docs.nunit.org/articles/nunit/intro.html 上的文档,您可能还会找到其他选项!随你挑! :-)