こんにちは、メソッド ウィッチには 2 つの for ループがあります。メソッドは次のようになります。
public ElearningSessionsDTO FilterElearningSession(IEnumerable<GetELearningSessionsForStudent_Result> eLearningSession)
{
var eLearningSessionDTO = new ElearningSessionsDTO();
var clossedLessons = new List<LessonsInElearningDTO>();
var plannedLessons = new List<LessonsInElearningDTO>();
var groupLessons = eLearningSession.GroupBy(key => new { key.LessonNumber, key.LessonTitle, key.TargetDate },
data => new { data.Status, data.EventTitle });
foreach (var groupLesson in groupLessons)
{
bool isPlanned = false;
var lessonInElearningDTO = new LessonsInElearningDTO
{
LessonNumber = groupLesson.Key.LessonNumber,
LessonTitle = groupLesson.Key.LessonTitle,
TargetDate = groupLesson.Key.TargetDate
};
var assignmentsInLessonDTO = new List<AssignmentsInLessonDTO>();
foreach (var assignment in groupLesson)
{
var assignmentInLessonDTO = new AssignmentsInLessonDTO
{
EventTitle = assignment.EventTitle,
Status = assignment.Status
};
if (assignment.Status != (int)ElearningEventSubscriptionStatuses.Closed)
{
isPlanned = true;
}
assignmentsInLessonDTO.Add(assignmentInLessonDTO);
}
lessonInElearningDTO.LessonsAssignments = assignmentsInLessonDTO;
if (isPlanned)
{
plannedLessons.Add(lessonInElearningDTO);
}
else
{
clossedLessons.Add(lessonInElearningDTO);
}
}
eLearningSessionDTO.ClossedLessons = clossedLessons;
eLearningSessionDTO.PlannedLessons = plannedLessons;
return eLearningSessionDTO;
}
最初の foreach ループが呼び出された回数を確認するための 1 つと、2 番目の foreach ループが呼び出された回数を確認するための 2 つです。
私はmoqをモッキングフレームワークとして使用していますが、通常、この種のシナリオでは、外部クラスから呼び出される追加のメソッドがあり、それを使用して、ループ内でそのメソッドが呼び出された回数を判断できます.しかし、私の現在ではシナリオこれをテストする方法が見つかりません。
私がどのように進めるべきかについて、誰かがアイデアを与えることができますか?