0

Qunit を使用して .js スクリプトをテストしています。

.js の「テスト対象コード」(CUT) と適切なマークアップを含む静的な .html テスト ハーネスがあります。含まれている別のスクリプトで QUnit を使用してテストしています。
このハーネスとテスト スクリプトは、次のプロジェクトにあります: Application.UI.Tests.JScript.

CUT には、それを使用するビューの位置に関連するターゲットを持つ AJAX 呼び出しがあります。
ビューとスクリプトは、MVC プロジェクトの従来のフォルダーにあります: Application.UI.

ビルド イベントはApplication.UI.Tests.JScriptDelScriptsXCopyフォルダーと 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 を編集してテスト固有の情報を含めずApplication.UIに、静的 .html ページから 実行中のプロジェクトのコントローラーで AJAX アクションを呼び出すにはどうすればよいですか?Application.UI.Tests.JScript

4

1 に答える 1

0

url値を からactionNameに変更する/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 に答える