У меня есть следующий метод, называемый Execute() из класса Abstract, называемого AutoLetterGenBatch, в моем ConsoleApp. Я пытаюсь это проверить.Тестирование модуля с носовыми носками
public void Execute()
{
BatchJobSecurity.Instance.CreatePrincipal();
DoExecute();
}
Таким образом, я настроил все, что, я считаю, все правильные ссылки и попытаюсь вызвать метод, как показано ниже.
[TestMethod]
public void TestMethod1()
{
AutoLetterGenBatchJob ALGBJ = new AutoLetterGenBatchJob();
ALGBJ.Execute();
}
Однако, когда я иду, чтобы сделать билд это дает мне эту ошибку компиляции Ошибка 34 Не удается создать экземпляр абстрактного класса или интерфейса «AutoLetterGenBatch.AutoLetterGenBatchJob».
Я немного новичок в модульном тестировании. Я понимаю, что это, вероятно, не большая часть теста, но я просто хочу, чтобы мой метод Execute() попал в настоящее время. Я прочитал, что хороший способ обойти эту проблему с абстрактными классами - создать макет объекта для абстрактного класса. Поэтому я стараюсь делать это с RhinoMocks.
[TestMethod]
public void TestMethod1()
{
AutoLetterGenBatchJob ALGBJ = MockRepository.GenerateStub<AutoLetterGenBatchJob>();
ALGBJ.Execute();
}
В настоящее время он строит все правильное использование утверждений на месте. Однако, когда тест проходит, я получаю эту ошибку. Невозможно найти конструктор с соответствующими аргументами. Снова я довольно новичок в этом. Если кто-то может помочь мне понять, что мне нужно сделать, это будет оценено по достоинству.