Я тестирую скрипт .js с использованием Qunit.
У меня есть статический .html тестовый комплект, который включает в себя .js "тестируемый код" (CUT) и содержит соответствующую разметку.Я тестирую с помощью QUnit в другом включенном скрипте.
Этот жгут и тестовый скрипт находятся в проекте: Application.UI.Tests.JScript
.
В CUT есть вызовы AJAX, которые имеют цель относительнорасположение представления, которое его использует.
Представления и сценарии находятся в обычных папках в проекте MVC: Application.UI
.
Событие сборки Application.UI.Tests.JScript
выполняет Del
и XCopy
папок «Сценарии» и «Содержимое», чтобы убедиться, что тесты выполняются с копией последней версии CUT.
Пример кода:
sendDataToServerViaAjax: function () {
var dataToSend = somefunctionThatReturnsData();
$.ajax({
url: 'actionName'
, type: 'post'
, data: dataToSend
, dataType: 'json'
, success: function (returnedData) {
alert('This was received by server: ' + returnedData);
}
});
}
actionNameпереходит к действию:
[ValidateInput(false)] //TODO for now
public JsonResult actionName(FormCollection formIn)
{
string jsonData = formIn[0];
JsonResult result = new JsonResult();
result.Data = jsonData;
return result;
}
, которое на данный момент просто возвращает данные и в конечном итоге вызовет правильную логику на уровне домена.
Вопрос: Как я могу заставить CUT вызывать действие AJAX на контроллере в работающем проекте Application.UI
со статической страницы .html в Application.UI.Tests.JScript
, не редактируя CUT для включения информации, специфичной для тестирования?