我必须实现一种方法来测试应用程序的不同方法。我正在收集有关JUnit的信息,因为它是正确测试应用程序方法的最有名的方法,但我有很多问题,我需要答案,我找不到。复杂环境中的JUnit测试
所以我有以下的JUnit测试,越容易我能想到的:
public class Civilian {
private final String firstName;
private final String lastName;
private final int birthDate;
public Civilian(String firstName, String lastName, int year) {
this.firstName = firstName;
this.lastName = lastName;
this.birthDate = year;
}
public String getFullName() {
return firstName + " " + lastName;
}
}
,并且测试类:
public class CivilianTest {
@Test
public void getFullNameTest() {
Civilian civ = new Civilian("bob", "Reynolds",1997);
Assert.assertEquals("bob Reynolds", civ.getFullName());
}
}
在这个例子中,我必须知道getFullName结果方法在assertEquals()方法中比较它。但是,这种测试如何保证这种方法在任何情况下都能正常工作?
在我必须处理的应用程序中,它们使用来自不同数据库的大量数据,其中将通过此方法修改此数据并返回此修改的数据。
问题是,在我使用该方法之前很难知道这些数据的结果。 JUnit只用于这样吗?我怎么能测试这个相同的方法在这个相同的数据的多个用途?
我同意@Makoto的回答。如果您想要彻底,JUnit允许您使用多个输入数据组合运行测试 - 请参阅参数化测试[此处](http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test /)或[这里](https://ourcraft.wordpress.com/2008/08/27/writing-a-parameterized-junit-test/)。不过,这通常不是必需的。我不认为我曾经使用参数化测试(除了性能测试,但这是一个不同的故事)。 – Mifeet