我在Test类中创建了以下四个测试,测试CompanyService的findCompany()方法。单元测试和集成测试示例
@Test
public void findCompany_CompanyIdIsZero() {
exception.expect(IllegalArgumentException.class);
companyService.findCompany(0);
}
@Test
public void findCompany_CompanyIdIsNegative() {
exception.expect(IllegalArgumentException.class);
companyService.findCompany(-100);
}
@Test
public void findCompany_CompanyIdDoesntExistInDatabase() {
Company storedCompany = companyService.findCompany(100000);
assertNull(storedCompany1);
}
@Test
public void findCompany_CompanyIdExistsInDatabase() {
Company company = new Company("FAL", "Falahaar");
companyService.addCompany(company);
Company storedCompany1 = companyService.findCompany(company.getId());
assertNotNull(storedCompany1);
}
我的理解是,前三个是单元测试。他们测试findCompany()方法的行为,检查方法如何响应不同的输入。 第四个测试,虽然放在同一个班,但实际上似乎对我来说是一个综合测试。它要求首先将公司添加到数据库中,以便稍后可以找到它。这引入了外部依赖项 - addCompany()和数据库。
我正确吗?如果是,那么我应该如何进行单元测试以查找现有对象?只是嘲笑服务“找”一个?我认为这会杀死测试的意图。
我很欣赏这里的任何指导。
嘛。底层服务(数据库调用)仅仅是Hibernate单线调用,肯定不会包含任何错误。所以,我猜我在做什么是没问题的。 – 2013-02-28 06:55:01