给定以下代码:
public class Employee
{
public void CalculateEmpSal(int empId,int salary)
{
// local varibles
int Basic;
int HRA;
// Calculate employee salary
Basic = salry * (0.40);
HRA = Basic * (0.50);
}
}
是否可以为可以访问Basic
和HRA
局部变量的CalculateEmpSal
方法编写单元测试?我无法使用反射访问这些变量。还有其他方法可以从我的单元测试中访问它们吗?
最佳答案
你不能……也不应该。
您应该测试由您的方法引起的副作用/状态变化,而不是底层实现细节。就目前而言,您的方法没有副作用,因此无需测试。
如果您更改它以返回一些有用的东西(可能是 HRA
),那么您将有一些东西可以在方法之外进行测试。
public int CalculateEmpSal(int empId,int salary)
{
// local varibles
int Basic;
int HRA;
// Calculate employee salary
Basic = salry * (0.40);
HRA = Basic * (0.50);
return HRA;
}
如果您只是想检查这些值,那么您应该使用调试器单步调试代码。
顺便说一句,您使用的是 float 和整数...您确定要这样做吗?
关于c# - 如何在编写单元测试时访问方法的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31065791/