jmockit测试私有方法
2017-06-26 00:00
1486 查看
摘要: 需要对service层所有方法进行单元测试,本文介绍如何使用jmockit测试私有的方法
先上service层方法代码
测试类需要的依赖先注入到测试类中
测试方法如下
先上service层方法代码
/** * 通过勋章code获取勋章对应的积分 * @param medalCode 勋章code * @return 勋章对应的积分 */ private int getMedalIntegralByMedalCode(String autoshowCode, String medalCode){ String integral = redisClient.hget(CacheConstants.MEDAL_HASHMAP+autoshowCode, medalCode); if(StringUtils.isEmpty(integral)){ List<AsMedal> medalList = asUserIntegralMapper.selectByAutoshowCode(autoshowCode); for(AsMedal medal:medalList){ redisClient.hset(CacheConstants.MEDAL_HASHMAP+autoshowCode,medal.getMedalCode(),String.valueOf(medal.getIntegral())); } integral = redisClient.hget(CacheConstants.MEDAL_HASHMAP+autoshowCode, medalCode); } return integral == null?0:Integer.valueOf(integral); }
测试类需要的依赖先注入到测试类中
@Tested private IntegralServiceImpl targetObject; @Injectable private RedisClient redisClient;
测试方法如下
@Test public void getMedalIntegralByMedalCodeTest() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { new NonStrictExpectations(){ { redisClient.hget("MEDAL_HASHMAPfrankfurt", "1002"); result = "75"; } }; //通过反射调用私有的方法 Method method = targetObject.getClass().getDeclaredMethod("getMedalIntegralByMedalCode", String.class, String.class); method.setAccessible(true); Integer integral = (Integer) method.invoke(targetObject, "frankfurt", "1002"); Assert.assertEquals(75*1L, integral*1L); }
相关文章推荐
- 如何测试私有/受保护的方法? (译文)
- VS2005对私有方法的单元进行测试
- 【未解决】cobertura如何跳过私有构造器和无用的getter,setter方法的测试覆盖率统计
- 通过反射测试类的私有方法和测试套件TestSuite
- jmockit Deencapsulation 访问类的私有成员和方法
- 如何测试私有方法?(TDD)
- java反射运用举例-junit测试私有方法
- 在单元测试中如何测试私有的方法
- private(私有)方法单元测试无法覆盖?那就用反射调用来测试private(私有)方法
- 小N的白盒测试之路 — objective-c私有成员和私有方法的测试
- 类中私有方法的测试
- 如何测试私有成员方法和变量
- Visual Studio 2008 进行单元测试之测试私有方法
- JUnit单元测试(五)--通过反射测试私有方法
- JUnit 3.8 通过反射测试私有方法
- [JAVA]在Junit中测试私有函数的方法(junit, private, method)
- 使用Junit 测试私有方法
- JUnit 3.8 通过反射测试私有方法
- 用java反射机制来测试其他类中的私有方法
- Junit3.8 私有方法测试