Я пытаюсь высмеять метод Ajax.IsRequest() ASP.Net MVC. Я узнал, как это сделать, чтобы оно вернулось:Mocking Ajax.IsRequest для возврата False
Expect.Call(_myController.Request.Headers["X-Requested-With"]).Return("XMLHttpRequest").Repeat.Any();
Это работает и возвращает true. Теперь мне нужно проверить другую ветвь кода. Как я могу издеваться над ним, чтобы вернуть false? Я попытался удалить макет в целом, он терпит неудачу с:
System.NullReferenceException:. Объект ссылки не установлено на экземпляр объекта ]
Если я:
Expect.Call(_templateReportController.Request["X-Requested-With"]).Return(null).Repeat.Any();
Он не работает с той же ошибкой.
Целые Тест:
/// <summary>
/// Tests the Edit Action when calling via Ajax
/// </summary>
[Test]
public void Test_Edit_AjaxRequest()
{
Group group = new Group();
group.ID = 1;
group.Name = "Admin";
IList<Group> groupList = new List<Group>() { group };
Definition def = new Definition();
def.ID = 1;
def.Name = "Report";
def.LastModified = DateTime.UtcNow;
def.Groups.Add(group);
using (_mocks.Record())
{
Expect.Call(_myController.Request["X-Requested-With"]).Return("XMLHttpRequest").Repeat.Any();
Expect.Call(_DefBiz.GetAll<Group>()).Return(groupList);
Expect.Call(_DefBiz.Get<Definition>(1)).Return(def);
}
myController.DefAccess = _DefBiz;
PartialViewResult actual;
using (_mocks.Playback())
{
actual = (PartialViewResult)myController.Edit(1);
}
}
Любые советы? Cheers
См. Http://stackoverflow.com/questions/2929058/newbie-question-on-mvccontrib-testhelpers – PatrickSteele
Как я уже говорил, я могу заставить его высмеять его, чтобы вернуть true, что делает образцы кода в этом вопросе, но я не могу заставить его вернуть false. – Damien
Не могли бы вы вставить весь тест, который работает? – Grzenio