Я новичок в nSubstitute. И я пишу тестовый метод для своего класса контроллера. У меня есть TestMethod с именем GetDefaultStateTest(), который имеет класс Substitute, как показано ниже.
[TestMethod]
public void GetDefaultStateTest()
{
var _GetDefaultState = Substitute.For<CustomerController>(ICustomer cus);
Assert.IsNotNull(_GetDefaultState.GetDefaultState());
}
Поскольку мой класс контроллера имеет параметризованный конструктор, как показано ниже.
public class CustomerController : Controller
{
private readonly ICustomer _customer;
public CustomerController(ICustomer customer)
{
_customer = customer;
}
public string GetDefaultState()
{
// Get default state from settings table
List<tblSettings> settings = new List<tblSettings>();
// Calling service method GetSettings
settings = _customer.GetSettings();
var defaultState = from setting in settings
where setting.Desc == "DefaultState"
select setting.Settings;
string strState = "";
foreach (var oState in defaultState)
{
strState = oState;
break;
}
return strState;
}
}
При запуске тестового метода возникает проблема с нулевой ссылкой. Из-за того, что параметр ICustomer равен нулю
var _GetDefaultState = Substitute.For<CustomerController>(ICustomer cus);
Как решить эту проблему.