java - 使用 main 方法在 Java 中编写单元测试

标签 java unit-testing junit

我的类中有一些方法

public class StringChecking
{
public static void main(String[] args);
public void stringChecker(String text, int number); //takes a string and prints that out. 
}

我想编写单元测试来测试“stringChecker()”方法。我想知道我该如何去做。当我在 JUnit 测试类中创建 StringChecking 类型的对象时,我似乎无法从该实例访问 stringChecker() 方法。

StringChecker 方法根据参数打印出传入文本的一定字数。我想检查打印出来的前 10 个字是否与预期结果相同。

JUnit 测试类

String expected = "My name is";
asserEquals(expected, actual);

我猜我会让我的 stringChecker 方法返回一些东西,以便进行检查。但我不明白为什么我无法从测试类访问该方法。

最佳答案

如果该方法不打印数字,而是将它们返回给调用者,那么代码会更容易测试。

如果你想测试实际打印效果,可以set a spy object to System.out收集数据而不是打印。然后您的测试可以断言该输出的正确性。

关于java - 使用 main 方法在 Java 中编写单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19239158/

相关文章:

javascript - Jasmine JS覆盖没有仪器不工作

java - JUnit 会并行运行测试吗?

javascript - 模拟作为参数传递给对象的回调

javascript - 如果异步调用,如何在测试函数B内部测试函数A是否被调用

android - JUnit 和安卓?

java - 从 eclipse 插件上下文中使用 JUnit4TestAdapter 的问题

java - 使用 RabbitMQ 实现 Saga 消息传递

Java-FileNotFoundException :/mnt/sdcard: open failed: EISDIR (Is a directory)

java - 在html中集成applet?

java - JAXB:获取错误 "Cannot resolve the name xxx to a(n) ' 类型定义'组件。”