Nella primavera WebFlow test di unità, come si fa a sostenere che uno stato di visualizzazione ha una vista di un nome?

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

Domanda

sto sviluppando un webflow Primavera, cercando di utilizzare TDD così ho esteso AbstractXmlFlowExecutionTests. Non riesco a vedere un modo ovvio per affermare quello che avrei pensato sarebbe una cosa semplice: che uno stato di visualizzazione ha una vista associata di un determinato nome. Ad esempio, dato questo flusso (estratto):

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

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

C'è un modo più semplice per affermare che foo Stato ha vista barView?

È stato utile?

Soluzione

È possibile utilizzare questo:

assertResponseWrittenEquals("barView", context);

Dove è il tuo context MockExternalContext.

Questo è come ho sempre prova questo comunque.

Altri suggerimenti

Se in realtà si sta segnalando eventi, è possibile ottenere il ViewSelection e verificare il nome tramite questo metodo:

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

Non posso parlare per il resto dei tuoi test, o il modo di utilizzare WebFlow, ma perché stai usando contains() per verificare l'uguaglianza? Sono sicuro che non si vuole una visione di "barViewBlah" per abbinare il test, vero?

assertEquals("barView", view.toString());
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top