gpt4 book ai didi

java - 如何使用构建器模拟内部变量

转载 作者:行者123 更新时间:2023-11-30 01:51:31 27 4
gpt4 key购买 nike

我正在编写单元测试并遇到构建器问题: 这是要测试的类:

public class ToBeTest() {
public void enact(SomeInput input){
Session s = Session.builder().attributeA(input.getA()).build();
s.attributeB("someValue");
}
}

如何编写测试来验证 session S 是否成功设置字段 A 和 B?谢谢!

最佳答案

基本上,您可以验证件事:

  • input.getA():模拟您向测试代码提供的 SomeInput 实例,然后您可以稍后验证该模拟对象!
  • Session.builder() 很可能是静态调用,因此使用 static 模拟来提供模拟的构建器对象,您也可以稍后进行验证。查看官方documentation了解执行此操作所需的步骤。

话虽如此:你真正的问题是你编写了“难以测试的代码”。令人惊讶的是,这使得测试变得困难。您会看到,首先拥有“方法本地”Sessions 变量有什么意义。如果该方法返回s,则您可以检查它是否具有某些属性。或者,如果 s 是该类的一个字段,那么您可以进行其他检查,以确保构建正确配置的 session 。

长话短说:PowerMock(ito) 提供了此代码所需的东西。阅读一些好的教程,您应该不会遇到太多问题。 但是值得投资于改进被测代码以使其更易于测试。我的经验法则是:当您需要 PowerMock(ito) 来测试您的代码时,那么您的生产代码应该得到改进。

关于java - 如何使用构建器模拟内部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854238/

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