gpt4 book ai didi

java - 两次模拟相同的语句

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:20 27 4
gpt4 key购买 nike

我有一个带有以下语句的 Java 方法:

public void someMethod() {
.....
Long firstVal = someService.getSomeObject().getId();
Long secondVal = someService.getSomeObject().getNextFunc().getOtherObject().getId();
.....
}

现在我正在尝试测试此方法,在模拟设置中我正在尝试这样做:

@RunWith(MockitoJUnitRunner.class)
public class SomeServiceTest {
@Mock SomeService mockSomeService;
SomeObject someObject = new SomeObject();

@Before
public void setup() {
someObject.setId(123456);
when(mockSomeService.getSomeObject).thenReturn(someObject);
//...
}
//...
}

现在我如何模拟 secondVal?

最佳答案

当您配置模拟时,您会为其提供(比方说) Storyboard。你告诉它你期望它采取什么行动。因此,您可以创建两个 SomeObject 实例并配置对不同方法的调用。如果是同一个方法,那甚至可以工作。

我更改你的代码:

  SomeObject someObject1 = new SomeObject();
SomeObject someObject2 = new SomeObject();

@Before
public void setup() {
someObject1.setId(123456);
someObject2.setId(123457);
when(mockSomeService.getSomeObject).thenReturn(someObject1);
when(mockSomeService.getSomeObject.getNextFunc.getOtherObject).thenReturn(someObject2);
//...
}
//...
}

关于java - 两次模拟相同的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30516983/

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