0

我正在使用 Qunit 测试一个 .js 脚本。

我有一个静态 .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;
}

它现在只返回数据,最终将调用域层中的正确逻辑。


问题: 如何使 CUTApplication.UI从静态 .html 页面中的正在运行的项目中的控制器上调用 AJAX 操作,Application.UI.Tests.JScript而无需编辑 CUT 以包含特定于测试的信息?

4

1 回答 1

0

url将值从actionNameto更改/Controller/actionName将使 url 相对于站点的根目录,例如

$.ajax({
     url: 'actionName'
    , type: 'post'
    , data: dataToSend
    , dataType: 'json'
    , success: function (returnedData) {
        alert('This was received by server: ' + returnedData);
    }
});
于 2011-01-19T12:15:35.773 回答