Я тестирую скрипт .js, используя Qunit.
У меня есть статическая тестовая программа .html, которая включает «тестируемый код» .js (CUT) и содержит соответствующую разметку. Я тестирую QUnit в другом включенном скрипте.
Эта система и тестовый скрипт находятся в проекте: Application.UI.Tests.JScript
.
В CUT есть вызовы AJAX, которые имеют цель относительно местоположения представления, которое его использует.
Представления и сценарии находятся в обычных папках в проекте MVC: Application.UI
.
Событие сборки Application.UI.Tests.JScript
выполняет Del
и XCopy
папок Scripts и Content, чтобы убедиться, что тесты выполняются с копией последней версии 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 для включения информации, предназначенной для тестирования?