Dans l'essai de l'unité printemps Webflow, comment avez-vous affirmer que l'état d'affichage a une vue d'un nom donné?

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

Question

Je développe un webflow de printemps, en essayant d'utiliser TDD donc j'ai AbstractXmlFlowExecutionTests étendu. Je ne vois pas de façon évidente d'affirmer ce que j'aurais pensé serait une chose simple: que l'état d'affichage a une vue associée d'un nom donné. Par exemple, étant donné ce flux (extrait):

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

et test unitaire

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"));
}

est-il un moyen plus simple d'affirmer que l'Etat a foo vue barView?

Était-ce utile?

La solution

Vous pouvez utiliser ceci:

assertResponseWrittenEquals("barView", context);

context est votre MockExternalContext.

Voici comment je teste toujours cela de toute façon.

Autres conseils

Si vous êtes en fait des événements de signalisation, vous pouvez obtenir le ViewSelection et vérifier le nom par cette méthode:

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

Je ne peux pas parler au reste de vos tests, ou comment utiliser Webflow, mais pourquoi utilisez-vous contains() pour tester l'égalité? Je suis sûr que vous ne voulez pas une vue de « barViewBlah » pour correspondre à votre test, pensez-vous?

assertEquals("barView", view.toString());
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top