2011-01-12 58 views
0

我正在使用Qunit測試.js腳本。如何從不同的視圖/頁面調用時更改AJAX調用目標?

我有一個靜態.html測試工具包括.js「測試下的代碼」(CUT)幷包含適當的標記。我正在使用包含在另一個腳本中的QUnit進行測試。
此安全帶和測試腳本駐留在一個項目中:Application.UI.Tests.JScript

CUT中有AJAX調用具有相對於使用它的視圖位置的目標。
視圖和腳本駐留在MVC項目的常規文件夾中:Application.UI

構建事件Application.UI.Tests.JScript會執行腳本和內容文件夾的DelXCopy以確保測試運行的是最新版本的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; 
} 

剛剛返回數據現在,最終將具有在域層調用正確的邏輯。


問: 我怎樣才能使削減Application.UI.Tests.JScript調用運行Application.UI項目控制器上的AJAX動作從靜態的.html頁面,而無需編輯CUT包括具體測試信息?

回答

0

url的值從actionName更改爲/Controller/actionName將使網址相對於網站的根,例如

$.ajax({ 
    url: 'actionName' 
    , type: 'post' 
    , data: dataToSend 
    , dataType: 'json' 
    , success: function (returnedData) { 
     alert('This was received by server: ' + returnedData); 
    } 
}); 
相關問題