由于NULL引用异常导致我的被测系统上的方法失败,我遇到了问题。我可以看到问题所在,但我不确定如何解决它。
我正在测试的课程如下:
public class PaymentService
{
public PaymentService(ICompanyService companyService, //Other dependencies)
{
_companyService = companyService;
//Other dependencies being assigned
}
public string SetupPayment(User user, ProductVariant product,
string successUrl, string failureUrl,
string cancelUrl, string errorUrl)
{
var company = _companyService.GetCompanyById(user.GetAppointment().RegistrationNumber);
}
}
PaymentService
类有许多其他的交互,但为了这个问题,这就是最重要的。
如您所见,要在GetCompanyId
中调用CompanyService
方法,需要满足传递user.GetAppointment().RegistrationNumber
的参数。 User.GetAppointment
的实施如下:
public Appointment GetAppointment()
{
// Check if user has any appointments
if (Appointments == null || Appointments.Count == 0) return null;
return Appointments.First().Appointment;
}
在我的单元测试中,我现在正在尝试测试SetupPayment
方法,但每次运行时,它都会在运行user.GetAppointment
方法时失败,因为它始终返回{{1} }}。
我在单元测试中的模拟框架已经设置好了(引起人们对null
的嘲笑:
_companyService
答案 0 :(得分:1)
问题是您的User
没有Appointments
,因此GetAppointment
返回null
。创建User
时,您可以设置Appointments
吗?如果没有,我建议您在IUser
类添加一个界面 - User
,然后传递它,这样就可以传递IUser
的模拟并模拟方法GetAppointment
。