我正在尝试为我的程序运行创建一些测试。我对 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/