我已经开始在我的一些项目中使用单元测试,我有一个小问题,我需要测试一个方法,我已经用完了想法作为一个例子:我有这个
public class Clients
{
Public Assignment AssignClient(int? clientRef, int? productRef)
//Assignment is an enum that has success,Failure,etc...
{
If(!checkClientAge(int clientRef)) Return Assignment.Tooyoung;
If(!checkClientAvailability(int clientRef)) Return Assignment.NotAvailable;
If(! checkProductavailability(int productRef)) Return Assignment.ProductNotAvailable;
}
}
我在客户端类和AssignClient
上做了一个模拟,但是我不知道如何处理三个布尔方法,不确定你是否知道如何模拟它们?
答案 0 :(得分:1)
如果你正在测试Clients
类,那么你不要模拟它,你需要一个真实的实例。相反,你嘲笑它使用的其他类,以便你可以从它们返回已知和可预测的结果,并消除数据库访问,UI交互等复杂性。
AssignClient
方法不适合单元测试,除非对私有方法的三次调用设置了外部可见的标志或属性 - 如果它们没有,那么没有任何可测量或观察的东西,你无法判断测试成功或失败。