gpt4 book ai didi

java - 如何针对不同情况从模拟方法返回多个值?

转载 作者:行者123 更新时间:2023-11-29 05:44:30 24 4
gpt4 key购买 nike

    new MockUp<SomeClass>() {
@Mock
boolean getValue() {
return true;
}
};

我想根据测试用例从 getValue() 返回不同的值。我该怎么做?

最佳答案

要在不同的测试中使同一个模拟类具有不同的行为,您需要在每个 单独的测试中指定所需的行为。例如,在这种情况下:

public class MyTest
{
@Test public void testUsingAMockUp()
{
new MockUp<SomeClass>() { @Mock boolean getValue() { return true; } };

// Call code under test which then calls SomeClass#getValue().
}

@Test public void anotherTestUsingAMockUp()
{
new MockUp<SomeClass>() { @Mock boolean getValue() { return false; } };

// Call code under test which then calls SomeClass#getValue().
}

@Test public void testUsingExpectations(@NonStrict final SomeClass mock)
{
new Expectations() {{ mock.getValue(); result = true; }};

// Call code under test which then calls SomeClass#getValue().
}

@Test public void anotherTestUsingExpectations(
@NonStrict final SomeClass mock)
{
// Not really needed because 'false' is the default for a boolean:
new Expectations() {{ mock.getValue(); result = false; }};

// Call code under test which then calls SomeClass#getValue().
}
}

当然,您也可以创建可重用 MockUpExpectations 子类,但它们也会在每个需要特定的测试中实例化行为。

关于java - 如何针对不同情况从模拟方法返回多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328606/

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