【发布时间】:2021-04-30 14:33:28
【问题描述】:
作为我的任务的一部分,我们获得了一个我们无法更改的接口,以及一些用于开发我们的方法的预定义测试。
界面如下:
public interface ContactTracer {
public void addCourse(String courseID, String courseName);
public void addStudent(String id, String name, String email);
public void loadStudentCourseList(Map<String, String> enrolments);
public String getStudentName(String studentID);
public String getStudentEmail(String studentID);
public String getCourseForStudent(String studentID);
public String getCourseName(String courseID);
public List<String> findStudentsForCourse(String courseID);
public List<String> findContacts(String studentID);
}
我正在运行的特定测试:
@Test
void testLoadStudentCourseList() {
ContactTracer ct = new PartOneContactTracer();
Map<String, String> enrolments = new HashMap<>();
enrolments.put("S101", "SOFT01");
enrolments.put("S102", "NET02");
enrolments.put("S103", "SOFT01");
ct.loadStudentCourseList(enrolments);
List<String> students = ct.findStudentsForCourse("SOFT01");
assertEquals(2, students.size());
assertTrue(students.contains("S101"));
assertTrue(students.contains("S103"));
}
以及我需要从测试中创建的方法:
@Override
public List<String> findStudentsForCourse(String courseID) {
return null;
}
我可以从测试中看出,在findStudentsForCourse 方法中,我需要创建List<String> students 并用注册地图中匹配的学生填充它,然后返回列表。
我创建了以下字段:-
public class PartOneContactTracer implements ContactTracer {
private Map<String, String> courseDetails = new HashMap<>();
private Map<String, String> studentName = new HashMap<>();
private Map<String, String> studentEmail = new HashMap<>();
private Map<String, String> enrolments = new HashMap<>();
...
}
我无法理解的是如何将注册地图中的数据传递到学生列表中,以使测试中的断言为真。
【问题讨论】:
-
你实现
loadStudentCourseList了吗?你需要向我们展示这一点。在实现填充数据的方法之前,您将无法实现搜索某些数据的方法。因为你怎么能指望什么都能搜索呢? (你可以,但答案总是一样的:什么都没有) -
@Michael 我认为他的问题是关于如何实现该方法,但如果他还没有尝试过,是的,他期待有人做他的工作而不是帮助解决问题。跨度>
-
@Michael 你当然是对的,我需要帮助的是
loadStudentCourseList,我不知道为什么我包含了findStudentsForCourse方法。显然让自己很困惑。为混乱道歉。 -
@Kaneda 这是我的一个真正的错误,我并不想让任何人为我做我的工作,只是在一些指导之后。
-
将每个地图视为一组 A 到 B 关系,因为这就是地图。我也喜欢这样命名它们。所以我所有的地图都被命名为
idToStudent。 ID是关键,学生是价值。在您的情况下,您有一些对我来说没有意义的地图。采取studentName。它代表什么?它是东西的名字吗?是ID来命名吗?还有什么?