我有一个系统,其中employeeId必须总是存在,除非存在一些潜在的问题.
我看到的方式是,我有两个选择来检查这段代码:
1:
public void GetEmployee(Employee employee)
{
bool exists = EmployeeRepository.VerifyIdExists(Employee.Id);
if (!exists)
{
throw new Exception("Id does not exist");
}
}
Run Code Online (Sandbox Code Playgroud)
或2:
public void GetEmployee(Employee employee)
{
EmployeeRepository.AssertIfNotFound(Employee.Id);
}
Run Code Online (Sandbox Code Playgroud)
选项#2在C#语言中是否可以接受?
我喜欢它,因为它很整洁,因为我不喜欢在类范围内查看"抛出新异常("bla bla bla")类型的消息.
如何处理私有方法的单元测试?
我有一个类将Employee数据加载到数据库中.这是一个示例:
>
public class EmployeeFacade
{
public Employees EmployeeRepository = new Employees();
public TaxDatas TaxRepository = new TaxDatas();
public Accounts AccountRepository = new Accounts();
//and so on for about 20 more repositories etc.
public bool LoadAllEmployeeData(Employee employee)
{
if (employee == null)
throw new Exception("...");
bool exists = EmployeeRepository.FetchExisting(emps.Id);
if (!exists)
{
EmployeeRepository.AddNew();
}
try
{
EmployeeRepository.Id = employee.Id;
EmployeeRepository.Name = employee.EmployeeDetails.PersonalDetails.Active.Names.FirstName;
EmployeeRepository.SomeOtherAttribute;
}
catch() {}
try
{
emps.Save();
}
catch(){}
try
{
LoadorUpdateTaxData(employee.TaxData);
}
catch() {}
try
{ …Run Code Online (Sandbox Code Playgroud)