Как получить вывод 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()
, Что я делаю неправильно?