Im Frühjahr Webflow Unit-Test, wie behaupten Sie, dass ein Ansichtszustand eine Ansicht eines gegebenen Namen hat?

StackOverflow https://stackoverflow.com/questions/798375

Frage

Ich entwickle eine Feder Webflow, TDD zu verwenden versuchen, damit ich AbstractXmlFlowExecutionTests verlängert habe. Ich kann nicht eine offensichtliche Art und Weise sehen zu behaupten, was ich hätte gedacht eine einfache Sache wäre: dass eine Ansicht Zustand eine zugehörige Ansicht eines bestimmten Namen hat. Zum Beispiel, da diese Strömung (Auszug):

<?xml version="1.0" encoding="UTF-8"?>
<flow ...>
    ...
    <view-state id="foo" view="barView">
    </view-state>
</flow>

und Unit-Test

public void testAssertFooStateHasBarView() {
    ...
    assertCurrentStateEquals("foo");
    assertTrue( getFlowDefinition().getState("confirmation").isViewState());
    // Surely there's an easier way...?
    ViewState viewState = (ViewState)getFlowDefinition().getState("foo");
    View view = viewState.getViewFactory().getView(new MockRequestContext());
    // yuck!
    assertTrue(view.toString().contains("barView"));
}

Gibt es einen einfacheren Weg, diesen Zustand foo zu behaupten Ansicht barView hat?

War es hilfreich?

Lösung

Sie können diese verwenden:

assertResponseWrittenEquals("barView", context);

Wo context ist Ihr MockExternalContext.

Dies ist, wie ich diese ohnehin immer testen.

Andere Tipps

Wenn Sie tatsächlich Ereignisse signalisiert, können Sie die bekommen und die Ansichten über überprüfen Sie den Namen über diese Methode:

assertViewNameEquals("Your View Name", applicationView(viewSelection));

Ich kann nicht auf den Rest Ihres Tests sprechen, oder wie Webflow verwenden, aber warum verwenden Sie contains() auf Gleichheit zu testen? Ich bin sicher, dass Sie nicht einen Blick auf „barViewBlah“ wollen Ihren Test entsprechen, nicht wahr?

assertEquals("barView", view.toString());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top