Как получить вывод HTML модульного теста Action в Struts 2?

В стойках 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(), Что я делаю неправильно?

0 ответов

Другие вопросы по тегам