编写Action单元测试用例

 我们通常在开发web应用过程中,展现层Action的单元测试经常被我们忽视了,主要原因是:

1、action层的业务逻辑比较简单。大家潜意识认为这一部分的代码不重要。

2、action层难以模拟http请求传递的参数,依赖web容器,给单元测试编写带来一定的难度。

 

我写了一个简单的action单元测试用例,供大家参考。基于struts的mock和webwork的ActionProxyFactory都可以进行action的单元测试。我个人比较倾向与ActionProxyFactory做单元测试。其实写action单元测试非常简单,大致分为三步就可以完成单元测试:

一、设置actionContext上下文参数

    将表单传递的请求参数添加到map中

二、创建action动态代理对象

    通过public abstract ActionProxy createActionProxy(String namespace, String actionName, Map extraContext) throws Exception 创建action代理对象。

三、junit断言执行结果

    assertEquals(testAction.login(),"success")

详细用例参考

 

注:创建代理action一定要执行proxy.execute()方法,否则参数不能够增加到actionContext上下文中。因为proxy.execute()中会执行 invocation.invoke()核心方法,遍历执行action中所有的拦截器,包括其中的参数拦截器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当涉及到编写Android Java测试用例时,有几个常见的框架可以使用,例如JUnit和Espresso。 1. JUnit是一个广泛使用的Java单元测试框架,可以用于编写Android应用程序的单元测试用例。你可以使用JUnit来测试各种功能和方法,以确保它们按预期工作。你可以创建一个新的测试类,使用`@Test`注解来标记测试方法,并在其中编写相应的测试代码。例如: ```java import org.junit.Test; import static org.junit.Assert.*; public class MyTest { @Test public void testAddition() { int result = 2 + 2; assertEquals(4, result); } } ``` 2. Espresso是一个用于编写Android UI测试用例的框架。它提供了一组API和工具,使得编写和执行UI交互测试变得更加容易。你可以使用Espresso来模拟用户与应用程序进行交互,并验证应用程序的行为是否符合预期。例如: ```java import androidx.test.espresso.Espresso; import androidx.test.espresso.action.ViewActions; import androidx.test.espresso.matcher.ViewMatchers; import androidx.test.ext.junit.rules.ActivityScenarioRule; import org.junit.Rule; import org.junit.Test; public class MyUITest { @Rule public ActivityScenarioRule<MainActivity> activityRule = new ActivityScenarioRule<>(MainActivity.class); @Test public void testButtonClick() { Espresso.onView(ViewMatchers.withId(R.id.button)).perform(ViewActions.click()); // 验证点击按钮后的期望行为 } } ``` 这只是测试用例的基本示例,你可以根据具体的需求编写更复杂的测试用例。另外,还有其他一些测试框架可以用于Android开发,如Robolectric和Mockito,它们提供了更多的功能和灵活性来进行单元测试和模拟对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值