Я знаю, что уже есть много постов, посвященных этому, но я не очень хорош в Javascript на начальном этапе, и большинство из тех, которые, вероятно, должны иметь смысл, используют старый синтаксис, который меня смущает.
Вот моя функция, с которой я хочу работать:
function getUpdateForm() {
$.ajax({
url: 'test_response.html',
type: 'GET',
dataType: 'json',
success: function(data) {
$("#Form_div").html(data);
},
});
};
Это мой файл ответов:
<html>
<head>
<title>Test Response</title>
</head>
<body>
<h1>Test Page</h1>
</body>
</html>
И это мой тест QUnit:
QUnit.test('getUpdateForm ajax request', function(assert) {
$.ajax = function(request) {
assert.equal(
request.url,
'test_response.html',
'request url is correct'
);
assert.equal(request.type, 'GET',
'request type is correct'
);
assert.equal(request.dataType, 'json',
'request dataType is correct'
);
};
getUpdateForm();
setTimeout(function() {
assert.equal($("#Form_div").html(), '',// not exactly sure what to put
'Received correct html in response'
);
assert.async();
}, 1000);
});
В настоящее время он даже не пытается запустить assert.equal
в функции setTimeout
.
Пожалуйста, дайте как можно больше подробностей, и у меня, вероятно, будет много вопросов.Во-первых, как тест может получить правильную функцию из $.ajax = function(request)
?