在 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()
. 我究竟做错了什么?