gpt4 book ai didi

java - 如何在 junit 中模拟新调用的创建?

转载 作者:行者123 更新时间:2023-11-30 02:42:15 25 4
gpt4 key购买 nike

有人可以帮我模拟新对象的创建并调用类方法吗:

public String login(){
new SampleClass3().method(sam);//need to mock this line
return "welcome to login page";
}

最佳答案

这可以使用模拟框架(例如 PowerMock)来完成。您可以找到如何执行此操作的说明 here例如。

因此,尽管 Louis 的评论在技术上是不正确的,但他关于您最好不要这样做的事实是完全正确的。

首先,使用 Powermock可能导致各种微妙或不那么微妙的问题。我花了很多时间“修复”损坏的单元测试 - 最终发现还有另一个奇怪的 Powermock 事情正在发生;我们的生产代码没有任何问题。

然后:真正的事情是 - 您创建了难以测试的代码:因为创建其他对象是最好不要发生这样的事情。相反,您应该研究依赖注入(inject)的方法。通过构造函数传递 SampleClass3 对象;或者通过传递该类的工厂,或者使用注入(inject)框架。

长话短说:您想通过观看这些 videos 来学习如何创建可测试的代码例如。这段时间比学习 PowerMock 是更好的投资;相信我。

关于java - 如何在 junit 中模拟新调用的创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41293887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com