需要 Java JUnit 测试指南

标签 java unit-testing testing junit

我正在尝试为我的程序运行创建一些测试。我对 Java 和整个编程还是陌生的,所以我不确定该怎么做。我有一个 .csv 文件,我们只称它为 testdata.csv,我想在该测试文件中查找某些单词以进行测试。因此,例如一个测试可以显示该文件中的多个字符串并说它们在那里。

我尝试过使用 assert.that,但它对我不起作用,我可能做错了。只是在网上搜索并试图将事情拼凑在一起。我包含的代码是我最后一次尝试,我知道这是不对的...


@org.junit.Test
    public void testAssets (){

        String fileName;

        fileName = "testdata.csv";

        Assert.that(fileName, hasItems);

如果没有字符串“UDP,TCP,ICMP”则测试失败

最佳答案

单元测试是关于单独测试您的代码,以确保一个或多个单元按预期运行。在上面的例子中,您想测试对从文件(或其他任何地方)读取的 String 进行操作的逻辑是否会检测到它要检测的内容。

假设您有一个方法:

public boolean isAMatch(String input)
{
    return (input.contains("UDP") || input.contains("TCP") || input.contains("ICMP"))
}

您对该方法或单元代码的测试应如下所示:

private void testIsAMatch()
{
    Assert.assertTrue(isAMatch("This String contains UDP."));
    Assert.assertTrue(isAMatch("This String contains TCP."));
    Assert.assertTrue(isAMatch("This String contains ICMP."));
    Assert.assertFalse(isAMatch("This String does not match."));
}

单元测试背后的想法是测试代码是否独立于外部源(例如文件、数据库连接、网站等)工作。如果文件被编辑或删除怎么办?你怎么知道你的失败在哪里?单元测试旨在快速告诉您代码更改是否导致您的逻辑中断。通过这种方式,您可以将 .csv 文件解析为一个大字符串或更小的字符串,或者将该输入传递给您的 isAMatch() 方法。如果它返回 false 但您的单元测试通过,并且假设您正在正确读取文件,那么您可以放心该文件不包含您要查找的匹配项。

关于需要 Java JUnit 测试指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55938804/

相关文章:

java - EclipseLink - 带条件查询的子查询 (JPA)

c++ - 模拟类可以从 googlemock 中的另一个模拟类继承吗?

unit-testing - 程序演进和失败的测试

android - 为 Samsung Galaxy S 开发时应该注意哪些问题?

android - Appium 无法通过 content-description/accessibilityID 找到元素

java - 我如何检查哪些所有用户都登录到我的应用程序

java - 从 Android 访问 servlet 时维护 HTTP session

java - Spring 是否生成验证代码?

Xcode 7 : Can't create a Swift command line tool with a unit test target

python - 基于高级期望行为示例的自动低级测试生成