gpt4 book ai didi

java - Mockito:测试一种采用长字符串的方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:04 33 4
gpt4 key购买 nike

如果输入字符串(在我的例子中是 StringBuilder)超过 2048 个字符,我的方法将返回一个异常。由于我们不能使用 Mockito 模拟最终类,谁能告诉我如何对此进行单元测试。

一种方法是实际传递一个很长的字符串,这看起来很愚蠢。有没有简单的方法来测试这个?

最佳答案

恕我直言,这里不需要 Mockito,只需使用创建已知长度 String 的东西(这里我使用 commons-lang RandomStringUtils )。我也用 ExpectedException测试异常

public class MyClassTest {
private static int LIMIT = 2048;
private static String TEST_STRING1 = RandomStringUtils.random(LIMIT);
private static String TEST_STRING2 = RandomStringUtils.random(LIMIT + 1);

@Rule
public ExpectedException ee = ExpectedException.none();

private MyClass myClass = new MyClass();

@Test
public void smallStringShouldBeOk() {
myClass.myMethod("foobar"); // OK if no exception or assert on a returned value
}

@Test
public void edgeCaseStringShouldThrow() {
ee.expect(SomeException.class)
ee.expectMessage("some message");

myClass.myMethod(TEST_STRING1);
}

@Test
public void tooLongStringShouldThrow() {
ee.expect(SomeException.class)
ee.expectMessage("some message");

myClass.myMethod(TEST_STRING2);
}
}

关于java - Mockito:测试一种采用长字符串的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26477020/

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