2015-12-21 71 views
0

我使用jQuery将表单信息发送到我的服务器php API。现在我需要为它写一个摩卡测试,而我对摩卡和jQuery非常陌生。我需要做什么?这里是我的代码:如何使用摩卡测试jquery post方法

<form class="form" method="post" action="http://140.115.xxx.xx/FinalProject/FetchUserData.php"> 
    <input type="text" placeholder="Username" name ="username" id="username"> 
    <input type="password" placeholder="Password" name ="password"> 
    <button type="submit" id="login-button">Login</button><br> 
    <li id="showerror"></li> 
    <a id="goToRegister" href="register.html" >Register</a> 
</form> 
$(document).ready(function(){ 
    var $form = $('form'); 
    $form.submit(function(){ 
     $.post($(this).attr('action'), $(this).serialize(), function(response){ 
      if(response == true) { 
       var username = document.getElementById('username').value; 
       window.location.href="main.html?" + username; 
      } else { 
       document.getElementById('showerror').innerHTML = "invalid username or password"; 
      } 
     }, 'json'); 
     return false; 
    }); 
}); 
+0

仅供参考 - 您的''li'元素无效,因为它不包含在'ul'或'ol'中。 –

+0

它只会在用户登录失败时显示。 – HenryOu

+0

好的,但它仍然意味着您的网页的HTML将无效,这可能会影响JS,CSS和SEO排名。 –

回答

0

您可以使用一个真棒嘲弄工具sinon,它具有Fake XMLHttpRequest

+0

谢谢!我会先使用它。但是在我使用sinon来测试连接之后,代码测试呢? – HenryOu

+0

你只需要用'FakeXMLHttpRequest' API来模拟服务器的响应,你的代码就会像运行你的假数据一样从服务器收到响应。 – Zuker

+0

对不起,我尝试阅读文档,它仍然是一个混乱。您能否进一步解释如何使用sinon来伪造服务器响应? – HenryOu