Comments (6)
可以为空,我在Demo里加了访问无参数方法的示例,可作为参考
https://github.com/alibaba/testable-mock/blob/master/demo/java-demo/src/test/java/com/alibaba/testable/demo/DemoPrivateAccessTest.java
如果可以的话,不妨将出错的代码脱敏提供一下
from testable-mock.
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringCloudApplication.class)
@ActiveProfiles(profiles = "dev")
public class DependentServiceTest {
@Autowired
private DependentService dependentService;
@Test
public void testPrivateMethod() {
//boolean result = PrivateAccessor.invoke(dependentService, "userHadJoin", "111"); // 没问题
boolean result = PrivateAccessor.invoke(dependentService, "userHadJoin", null); // 空指针 Failed to invoke private method "userHadJoin": java.lang.NullPointerException
//boolean result = PrivateAccessor.invoke(dependentService, "userHadJoin", "111", null);// 空指针 Failed to invoke private method "userHadJoin": java.lang.NullPointerException
System.out.println(result);
}
}
@Component
public class DependentService {
public Integer submitGuess(String userId) {
System.out.println("substring():" + userId.substring(0, 2));
System.out.println("length():" + userId.length());
// 查询DB
if (userHadJoin(userId)) {
return 0;
}
insertJoin(userId);
return 1;
}
private Integer insertJoin(String userId) {
//插入数据
return 1;
}
private boolean userHadJoin(String userId) {
// 查询DB
return false;
}
private boolean userHadJoin(String userId, Object other) {
// 查询DB
return false;
}
}
完整代码如上, 任一个参数传null时,都会导致空指针, 有些业务场景会传参数为null的情况
PrivateAccessor.invoke(dependentService, "userHadJoin", "111", null);
from testable-mock.
@hedaoming 抱歉过了几天才发现你的回复。
包含null参数报NullPointerException
的情况确实是个BUG,会尽快修复🌷
from testable-mock.
已在0.4.10
版本修复
from testable-mock.
您好,我使用的0.6.6的版本,这个问题依然会出现,对私有方法的调用入参有null值情况会有NPE.
from testable-mock.
最新的版本是0.7.5
,试一下新版本?
from testable-mock.
Related Issues (20)
- OmniConstructor工具类,开启了字节码增强,但mock对象时还是会随机偶发报错 HOT 3
- when use MockWith annotation, mockClass not right HOT 2
- 包路径映射后,mock未生效
- Maven package failed due to EnablePrivateAccessProcessor HOT 5
- 建议:建议增加两个快速开始文档 HOT 1
- OmniConstructor.newInstance(RyNormalTask.class) 报错 Failed to invoke constructor HOT 1
- 如何避免mock代码异常提交 HOT 3
- @MockContainer 注解对于继承类的void方法不能正常生效
- 被测试类的方法没有被mock HOT 1
- 使用@RequiredArgsConstructor出现Failed to load ApplicationContext
- 与Jacoco一起使用时,不支持Java17
- 使用OmniConstructor.newInstance()报错 HOT 1
- 从0.7.7升级到0.7.9,启用OmniConstructor的字节码增强模式效率变得非常慢
- 按文档在test里设置jvmArgs报空指针
- 测试service 中调用dao 中继承自mybatis中basemapper通用方法,mock dao层 不生效
- dao层mock 新增 修改 返回int类型接口,启动test报错,类型不匹配,改成Integer,mock不生效
- SpringBoot3中@{argLine} 和 -javaagent不能同时使用
- springboot框架下拦截器中的方法怎么修改
- 一个被测试类可以有个多个Mock类吗?
- javademo为什么使用jacoco覆盖率依然为0?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from testable-mock.