No teste de unidade Primavera Webflow, como você afirmar que um estado de exibição tem uma vista de um determinado nome?

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

Pergunta

Estou desenvolvendo um webflow Spring, tentando usar TDD para que eu tenha estendido AbstractXmlFlowExecutionTests. Eu não posso ver uma maneira óbvia para afirmar que eu teria pensado seria uma coisa simples: que um estado de exibição tem uma vista associada de um determinado nome. Por exemplo, dado este fluxo (trecho):

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

e teste de unidade

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

Existe uma maneira mais simples de afirmar que foo estado tem vista barView?

Foi útil?

Solução

Você pode usar este:

assertResponseWrittenEquals("barView", context);

Onde context é o seu MockExternalContext.

Isto é como eu sempre testar isso de qualquer maneira.

Outras dicas

Se você está realmente sinalização eventos, você pode obter o ViewSelection e verificar o nome através deste método:

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

Eu não posso falar para o resto de seus testes, ou como usar Webflow, mas porque você está usando contains() para teste de igualdade? Tenho certeza que você não quer uma visão de "barViewBlah" para combinar com seu teste, não é?

assertEquals("barView", view.toString());
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top