2

単体テストを作成したいユーティリティ メソッドがあります。このユーティリティは webapp の下で実行されるため、WebApplicationContext から Spring Bean を取得するように設計されています。 (以下のコードは単体テストを行っていません) アクション Bean クラス

private IUnitBiz unitBiz;
public UnitBean()
{
    unitBiz = CommonUtils.getBean(IUnitBiz.class);
}

CommonUtils.class で

public static ApplicationContext getWebApplicationContext() {
        return FacesContextUtils.getWebApplicationContext(FacesContext.getCurrentInstance());
    }

    public static <T> T getBean(Class<T> beanType) {
        return getWebApplicationContext().getBean(beanType);
    }

------------------ユニットテスト中----------------

単体テストでは null が返されます。単体テストで WebApplicationContext または getBean を初期化するにはどうすればよいですか? 新しいアクション Bean の場合、getBean メソッドは null を返します。

4

2 に答える 2

2

EasyMockが解決策になる可能性があります。

例:

WebApplicationContext mockWebApplicationContext = EasyMock.createMock(WebApplicationContext.class);
MockServletContext mockServletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
                                    mockWebApplicationContext);

EasyMock.expect(mockWebApplicationContext.getServletContext()).andReturn(mockServletContext).anyTimes();
于 2012-12-27T14:10:18.170 に答える