![](/img/trans.png)
[英]How to assert in a unit test that Spring Webflow exited through the specific end state?
[英]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.