0

在 struts 2 单元测试中,MockHttpServletResponse我期望的类是可用的,它应该包含执行后任何给定操作的 html 输出。我正在尝试获取此输出并测试它是否存在某个字符串,但是我得到一个空字符串作为输出返回。

这是我的代码:

public class HomeTest extends StrutsJUnit4TestCase<Home>
{    
    private ActionProxy proxy;

    @Before
    public void setUp() throws Exception
    {
        super.setUp();
        proxy = getActionProxy("/home");
    }

    //This test passes fine, the problem is in the next test:
    @Test
    public void testExecute() throws Exception
    {
       String result = proxy.execute();        
       assertEquals("Landing", "landing", result);                
    }

    @Test
    public void testAssets() throws Exception
    {  
        proxy.execute();

        String output = response.getContentAsString();
        System.out.println("output : " + output);

        //The following assertion fails, and in the console, I see an empty
        //String for the output:
        assertTrue( output != null && ! output.isEmpty() );

        String cdnUrl = Config.getCDNUrl();
        assertTrue( output.contains(cdnUrl) );
    }
}

这是我在 struts.xml 文件中配置此操作的方式:

 <action name="home" class="net.myProj.actions.Home" method="execute">
    <result name="landing">/landing.jsp</result>
 </action>       

如果我在浏览器中正常访问此操作,我可以看到预期的 html 输出就好了。但是,如果我尝试运行测试,则无法使用response.getContentAsString(). 我究竟做错了什么?

4

0 回答 0