У меня есть контроллер веб-API с некоторой функцией GET, которую я хочу протестировать. Внутри этой функции GET есть открытый метод void SendCachingHeaders :
public void SendCachingHeaders(int cacheFor) {
Request.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
Request.HttpContext.Response.Headers.Add("Cache-Control", "max-age="+cacheFor+", public");
}
В тестовом классе я создаю mockController :
var mockController = new Mock<IRawEntityController>();
SendCachingHeaders находится внутри контроллера, который реализует -> IRawEntityController
Итак, я хотел переопределить SendCachingHeaders тело метода с moq объектом, подобным этому:
mockController.Setup(
x => x.SendCachingHeaders(It.IsAny<int>())).
Callback(() =>
{
int i; //just to do something irrelevant
});
Однако, когда я запускаю тест, я вижу в debbuger, что вызывается оригинальный метод SendCachingHeaders , и мой смоделированный объект полностью игнорируется.
Совершенно ли я неправильно понял, что делает Callback , или я упускаю что-то очевидное?
Еще одна вещь -> когда я запускаю тест, значение cacheFor (аргумент метода SendCachingHeaders равно '5'. Вероятно, неактуальная информация.
Спасибо за любую помощь.