У меня есть класс, который отвечает за создание слайдов PPT для экспорта. Чтобы проверить это, я создал интерфейс, чтобы он мог насмехаться с помощью Moq; все до сих пор. Однако я сталкиваюсь с трудностями при попытке проверить, что мой метод был вызван. Это метод void, поэтому на данный момент я хочу знать только, что метод был удален.Проверка, вызван ли метод void с использованием Moq
Вот мой интерфейс:
interface IPowerpointExporter
{
void AddSlides(int amount);
void setTitle(string title);
}
А вот мой блок тест:
[TestMethod]
public void testPPTObject()
{
var mockPPT = new Mock<IPowerpointExporter>();
mockPPT.Setup(m => m.AddSlides(1)).Verifiable();
mockPPT.Object.AddSlides(1);
mockPPT.VerifyAll();
}
Однако, когда я пришел, чтобы позвонить AddSlides()
я получаю GeneratorException
. Объяснение этого в том, что мой IPowerpointExporter не был доступен. У меня такое чувство, потому что я пытаюсь вызвать метод на интерфейсе, хотя я не уверен, так как на данный момент у меня есть объект на mockPPT.Object.AddSlides();
.
Обратите внимание, что я также попытался выполнить попытку использовать фактический объект, а не Interface.Object. Это также дает то же исключение:
[TestMethod]
public void testPPTObject()
{
var mockPPT = new Mock<IPowerpointExporter>();
mockPPT.Setup(m => m.AddSlides(1)).Verifiable();
ExportPowerPoint temp = (ExportPowerPoint)mockPPT.Object;
temp.AddSlides(1);
mockPPT.VerifyAll();
}
Использование Moq Как я могу проверить, что мой метод был вызван? Что я делаю выше по правильной линии?
Кажется, что вы проверяете свой макет. Вы должны протестировать код с помощью IPowerpointExporter, и убедитесь, что метод на (издеваемом) интерфейсе называется – andreasnico