相关疑难解决方法(0)

System.out.println()的JUnit测试

我需要为一个设计很差的旧应用程序编写JUnit测试,并将大量错误消息写入标准输出.当getResponse(String request)方法行为正确时,它返回XML响应:

@BeforeClass
public static void setUpClass() throws Exception {
    Properties queries = loadPropertiesFile("requests.properties");
    Properties responses = loadPropertiesFile("responses.properties");
    instance = new ResponseGenerator(queries, responses);
}

@Test
public void testGetResponse() {
    String request = "<some>request</some>";
    String expResult = "<some>response</some>";
    String result = instance.getResponse(request);
    assertEquals(expResult, result);
}
Run Code Online (Sandbox Code Playgroud)

但是当它得到格式错误的XML或者不理解它返回的请求并将null一些东西写入标准输出时.

有没有办法在JUnit中断言控制台输出?要抓住像这样的案例:

System.out.println("match found: " + strExpr);
System.out.println("xml not well formed: " + e.getMessage());
Run Code Online (Sandbox Code Playgroud)

java console junit

346
推荐指数
8
解决办法
22万
查看次数

JUnit测试System.err.print()

我有一些方法,诸如简单的数组类Add(int n),AddAt(int n, int index)等.

addAt方法从超类调用另一个方法

public void addAt(int n, int index) {
    if (checkIndex(index, size + 1)){
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

检查插入的索引是否不受限制,如果是,超类方法会向控制台输出错误消息.

如果邮件被打印,我应该如何测试?我正在使用JUnit4.12-beta

java junit junit4

3
推荐指数
1
解决办法
2272
查看次数

如何在jUnit中测试一个非常简单的void方法?

我知道有一些关于void-method Unit-Testing的问题,但我的问题是不同的.
我正在学习java,所以我的老板给了我一些对我的任务有不同要求的任务.

在我的实际任务中,有一个要求,即jUnit测试必须覆盖> 60%.所以我需要测试一种非常简单的方法来达到这个60%.方法如下:

public void updateGreen() {
    // delete this outprint if the Power Manager works
    System.out.println(onCommand + "-green");
    // p = Runtime.getRuntime().exec(command + "-green");
    // wait until the command is finished
    // p.waitFor();
}
Run Code Online (Sandbox Code Playgroud)

由于实习问题,我无法用Runtime任务执行命令.所以System.out这种方法只有一个.

我有多种方法,因此这种方法的测试将覆盖整个代码的10%以上.

测试这种方法有用吗?什么时候,怎么样?

java junit

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

java ×3

junit ×3

console ×1

junit4 ×1