1

我在一个类项目中使用 jQuery 来捕获表单提交并向表单添加一些额外的数据。从功能上讲,该系统工作正常。没有错误,所有输出都符合预期。我们还需要使用 HTTPUnit 来测试我们的系统。在我的测试中(不久之后),我可以找到表格,发送测试值并提交。然后,我进行检查以在网页上查找预期结果。我没有得到这个声明。就像我之前说的,我可以进入并手动运行这个精确的测试并获得我想要的输出,但是通过 httpunit,我会失败。

这是html表单。

<form action="" method="post" id="cc_form">
<label for="cardType">Card Type:</label>
  <select name="cardType">
    <option value="Visa">Visa</option>
    <option value="Mastercard">Mastercard</option>
    <option value="Discover">Discover</option>          
    <option value="American Express">American Express</option>
  </select><br><br>
<label for="cardNumber">Card Number:</label>
<input type="text" name="cardNumber"/><br><br>
<label for="cvvCode">CVV Code:</label>
<input type="text" name="cvvCode"/><br><br>
<label for="cardHolder">Card Holder Name:</label>
<input type="text" name="cardHolder"/><br><br>
<label for="address">Billing Address:</label>
<input type="text" name="address"/><br><br>
<input type="submit" class="subsub" id="submitcc" value="Submit" /><br><br>
</form>

这是我正在使用的适用 jQuery。

$('#cc_form').submit(function() {
    $(this).append('<input type="hidden" name="payment_type" value="cc_form" /> ');
    return true;
});

这是针对此问题失败的 httptest(其中之一)

public void testIncorrectCVVCode() throws Exception{
    WebConversation wc = login("31", "pw");
    WebResponse wr = wc.getCurrentPage();

    wr = wr.getLinkWith("Billing Statements").click();
    wr = wr.getLinkWith("Oct 10, 2005").click();
    wr = wc.getCurrentPage();

    Button btn = (Button)wr.getElementWithID("ccBtn");
    btn.click();
    wr = wc.getCurrentPage();

    WebForm form = wr.getFormWithID("cc_form");
    form.setParameter("cardHolder", "steven");
    form.setParameter("address", "2 forrest dr");
    form.setParameter("cardType", "Visa");
    form.setParameter("cardNumber", "2323232323232323");
    form.setParameter("cvvCode", "23");
    wr = form.submit();

    //wr = wc.getCurrentPage();
    assertTrue(wr.getText().contains("Invalid Card CVV"));
}

欢迎任何帮助。

PS。这是我从 httpunit 中得到的失败

junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:55)
at junit.framework.Assert.assertTrue(Assert.java:22)
at junit.framework.Assert.assertTrue(Assert.java:31)
at junit.framework.TestCase.assertTrue(TestCase.java:201)
at edu.ncsu.csc.itrust.http.BillingTest.testIncorrectCVVCode(BillingTest.java:244)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:255)
at junit.framework.TestSuite.run(TestSuite.java:250)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
4

0 回答 0