簡體   English   中英

在Spring Webflow單元測試中,如何斷言視圖狀態具有給定名稱的視圖?

[英]In Spring Webflow unit test, how do you assert that a view state has a view of a given name?

我正在開發一個Spring Webflow,試圖使用TDD,所以我擴展了AbstractXmlFlowExecutionTests。 我看不出一種明顯的方法來斷言我原以為會很簡單的事情:視圖狀態具有給定名稱的關聯視圖。 例如,鑒於以下流程(節選):

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

和單元測試

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

有沒有一種更簡單的方法來斷言狀態foo具有視圖barView

您可以使用此:

assertResponseWrittenEquals("barView", context);

context是您的MockExternalContext

無論如何,這就是我始終要進行測試的方式。

如果您實際上是在發信號通知事件,則可以通過以下方法獲取ViewSelection並檢查名稱:

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

我無法與您的其余測試或如何使用Webflow進行交流,但是為什么要使用contains()進行相等性測試? 我確定您不希望“ barViewBlah”視圖與您的測試相匹配,對嗎?

assertEquals("barView", view.toString());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM