想象一下,我有以下类结构:
public interface Sender {
void send(String note);
}
public interface Agent {
void sendNote(String note);
}
public class Emailer implements Sender {
void send(String note) {
//...do something
}
}
public class Helper {
List<String> populateNotes() {
//...do something
}
}
public class EmailAgent implements Agent {
List<String> notes;
void sendNote(String note) {
Helper helper = new Helper();
notes = helper.populateNotes();
for (String s : notes) {
Sender sender = new Emailer();
sender.send(s);
}
}
}
现在,我想在EmailAgent中对sendNote()
方法进行单元测试。但是,由于需要填充列表Helper
,因此依赖notes
。如果在JUnit测试中我首先在调用populateNotes()
...
sendNote()
答案 0 :(得分:0)
或者使用建议2 - 创建生成硬编码列表的存根 - 然后对sendNote方法进行单元测试。模拟也会对此有所帮助,但需要对接口进行编码才有用。虽然它可行,但一个简单的存根也应该可以解决问题。