1

クラス プロジェクトで jQuery を使用して、フォームの送信をキャッチし、フォームに追加データを追加しています。機能的には、システムは正常に動作します。エラーはなく、すべての出力は期待どおりです。また、システムをテストするために HTTPUnit を使用する必要があります。私のテスト (これはすぐ後に続きます) では、フォームが正常であることを確認し、テスト値を送信して送信することができます。次に、Web ページで期待される結果を探すチェックを行います。私はこの声明を受け取っていません。前に言ったように、この正確なテストを手動で実行して必要な出力を得ることができますが、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 (の 1 つ) です。

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