gpt4 book ai didi

java - 是否可以将 Mockito 中的某些返回值列入黑名单?

转载 作者:太空宇宙 更新时间:2023-11-04 10:11:11 24 4
gpt4 key购买 nike

背景

我正在尝试使用 Mockito 在类中测试此方法:

该方法的第一种情况是字符串等于常量。

该方法的第二种情况是当字符串等于除常量之外的任何其他值时。

这是关于 anything except a certain integer 的问题的字符串版本.

public class Class {
private SomeOtherObjectWithAMethod someOtherObjectWithAMethod;

public Class(SomeOtherObjectWithAMethod someOtherObjectWithAMethod){
this.someOtherObjectWithAMethod = someOtherObjectWithAMethod;
}

public void method(){
if(helperObject.obtainAString().equals(HelperObject.A_STRING_CONSTANT)){
someOtherObjectWithAMethod.thisMethod("stringarg");
}
else{
someOtherObjectWithAMethod.thisMethod("differentarg");
}
}

我知道在 Mockito 你可以

  1. 根据 durron597 更改mockito中的某些返回值(但只有最后一个有效)

  2. thenReturn() 方法中输入 null 作为不返回任何内容的方法。

  3. 使用 anyString() 充当虚拟字符串。
  4. 返回一个 boolean 值。

部分解决方案

我已经对第一种情况进行了单元测试(str.equals("This string")),如下所示:

private Class instantiatedClass;

@Test
public void testMethod_thisString(){
whenever(helperObject.obtainAString()).thenReturn(HelperObject.A_STRING_CONSTANT);
instantiatedClass.method()
verify(someOtherObjectWithAMethod).thisMethod("stringarg");
}

我将编写另一个类似的测试用例方法。我已在下面注释掉了我需要帮助的部分:

@Test
public void testMethod_notThisString(){
whenever(helperObject.obtainAString()).thenReturn(/* A String that is not HelperObject.A_STRING_CONSTANT */);
instantiatedClass.method()
verify(someOtherObjectWithAMethod).thisMethod("differentarg");
}

问题

如何测试任何字符串除了的特定值(或多个值)?

最佳答案

您可以寻找创建随机字符串,并在它们不等于特定值时使用它们。

关于java - 是否可以将 Mockito 中的某些返回值列入黑名单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52302836/

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