我是Junit的新手。我想跟随TDD。我的任务是为新方法编写测试用例。我方法的签名是public Message getMessage(String id)
责任getMessage(String id)
是将messageId作为参数和查询DB,并从resultSet填充Message对象并返回。
Message Bean有四个成员
我的困惑是:
答案 0 :(得分:1)
有两种方法。
如果要在此方法中测试数据访问层代码,请使用DBUnit。您需要先插入样本数据,然后使用此函数进行查询。测试完成后,删除样本数据。
如果您只是想检查业务逻辑。然后,您可以使用powermock或easymock在getMessage
方法中模拟所有方法调用。并且仅测试此方法。在这里查看powermock
https://github.com/jayway/powermock
答案 1 :(得分:1)
当我有一些复杂的对象作为"期望"时,我使用Spring来构建它。
例如:
实体类:
public class Person {
private long id;
private String name;
private int age;
// getters, setters, constructors goes here
// ! IMPORTANT ! equals and toString must be implemented properly.
}
测试方法:
public class SomeClass {
public static Person getPerson(long id) {
// return some real Person object from database
}
}
写下我的预期"对象我用Spring:
<bean id="person" class="Person">
<property name="id" value="1">
<property name="name" value="John">
<property name="age" value="42">
</bean>
然后在测试方法中:
Person expected = springContext.getBean("person", Person.class);
Person actual = SomeClass.getPerson(1);
assertEquals(expected, actual);
如果你还没有实现getPerson
,你可以使用像Mockito这样的东西来模拟这个方法并返回dumm对象,它也可以用Spring构建。