单位或验收测试?

时间:2016-02-22 00:04:04

标签: java unit-testing testing acceptance-testing

想象一下,我有以下类结构:

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()
  1. 这是单元测试还是验收测试?
  2. 或者我应该对列表进行硬编码?

1 个答案:

答案 0 :(得分:0)

或者使用建议2 - 创建生成硬编码列表的存根 - 然后对sendNote方法进行单元测试。模拟也会对此有所帮助,但需要对接口进行编码才有用。虽然它可行,但一个简单的存根也应该可以解决问题。