716 Stimmen

JavaScript-Unit-Test-Tools für TDD

Ich habe mir viele JavaScript-Unit-Tests und Test-Tools angesehen und in Betracht gezogen, konnte aber keine geeignete Option finden, um vollständig TDD-konform zu bleiben. Also, gibt es ein JavaScript-Unit-Test-Tool, das vollständig TDD-kompatibel ist?

4voto

alex.c Punkte 21

Wir haben die JUnit-Integration in unseren Java-Javascript-Codegenerator ST-JS ( http://st-js.org ). Das Framework generiert das entsprechende Javascript sowohl für den getesteten Code als auch für die Unit-Tests und sendet den Code an verschiedene Browser.

Ein separater Server ist nicht erforderlich, da der Unit-Test-Runner den benötigten http-Port öffnet (und nach Abschluss der Tests wieder schließt). Das Framework manipuliert den Java-Stacktrace so, dass die fehlgeschlagenen Asserts vom JUnit Eclipse-Plugin korrekt angezeigt werden. Hier ist ein einfaches Beispiel mit jQuery und Mockjax:

@RunWith(STJSTestDriverRunner.class)
@HTMLFixture("<div id='fortune'></div>")

@Scripts({ "classpath://jquery.js",
       "classpath://jquery.mockjax.js", "classpath://json2.js" })
public class MockjaxExampleTest {
  @Test
  public void myTest() {
    $.ajaxSetup($map("async", false));
    $.mockjax(new MockjaxOptions() {
      {
        url = "/restful/fortune";
        responseText = new Fortune() {
          {
            status = "success";
            fortune = "Are you a turtle?";
          }
        };
      }
    });

    $.getJSON("/restful/fortune", null, new Callback3<Fortune, String, JQueryXHR>() {
      @Override
      public void $invoke(Fortune response, String p2, JQueryXHR p3) {
        if (response.status.equals("success")) {
          $("#fortune").html("Your fortune is: " + response.fortune);
        } else {
          $("#fortune").html("Things do not look good, no fortune was told");
        }

      }
    });
    assertEquals("Your fortune is: Are you a turtle?", $("#fortune").html());
  }

  private static class Fortune {
    public String status;
    public String fortune;
  }
}

3voto

Aaron Digulla Punkte 308693

Werfen Sie einen Blick auf env.js . Siehe mein Blog für ein Beispiel, wie man Unit-Tests mit env.js schreibt.

2voto

MochiKit hat ein Test-Framework namens SimpleTest, das sich offenbar durchgesetzt hat. Hier ist ein Blogbeitrag des ursprünglichen Autors .

0 Stimmen

SimpleTest - eine weitere großartige Option. Ich bin froh, dass ich hier nicht die Ermittlungsarbeit mache ;-)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X