【问题标题】:changing values of a boolean field更改布尔字段的值
【发布时间】:2022-01-13 06:12:51
【问题描述】:

我有一个自定义类,如下所示:

public class A{
  private String msg,
  private String name,
  private int number;
  private boolean isActive;
}

我正在编写一个测试用例,我可以在其中创建此类的实例

A case = new A("This is an sample", "Raks", 1, true);
//some logic here...
//
//

//-- Now i want to change the activity of case to false.
//case.isActive ==false; // This does not work, but I want to achieve this.

//I was not able to do it, and hence created another instance
A case2 = new A("This is an sample", "Raks", 1, false);

我想知道是否可以直接更改字段的值而不是创建新实例。

-------------------编辑--------------- ----

@AllArgsConstructor
@Getter
@ToString
public class A{
  private String msg,
  private String name,
  private int number;
  private boolean isActive;
}

【问题讨论】:

  • 你可以用公共的setter方法来改变它
  • 创建一个设置器来更改字段 - 封装点的种类
  • 好的,所以 A 中字段的值来自远程服务器,因此没有设置器。我正在模拟 A 最初处于活动状态然后变为非活动状态的场景。
  • 这是否意味着您不想/不能更改类以添加设置器?模拟情况是否会在真实场景中涉及 2 条消息?如果是这样,我会使用 2 条消息,因为如果远程服务器发生任何变化,这似乎会发生什么。
  • 我无法添加setter,类比类似于警报,它首先处于活动状态,然后变得不活动。

标签: java testing boolean


【解决方案1】:

创建一个公共的setter方法

public class A{
  private String msg,
  private String name,
  private int number;
  private boolean isActive;

  public void setIsActive(boolean isActive) {
    this. isActive = isActive;
  }
}

您可以从测试用例中调用 setter,因为它是公开的。

case.setIsActive(false);

【讨论】:

  • 感谢 Pabasara,但这里的问题是,对于我的要求,我没有设置器。这些值来自远程服务器。我正在模拟一个场景,该案例最初处于活动状态,然后变为非活动状态。
  • 对不起,我没听懂。你不是创造A类的人吗?能贴出完整的代码吗?
  • 我更新了课程,这个概念有点像警报,最初它会处于活动状态,然后会变为非活动状态。我只有一个吸气剂,因为这些值无法修改。但是,出于测试目的,我正在模拟不活动
猜你喜欢
  • 2017-02-22
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 2020-07-03
  • 2021-10-26
  • 2020-11-08
  • 2016-02-28
相关资源
最近更新 更多