2017-11-15 16 views
1

안녕하세요 여러분, 안녕단위 테스트 xUnit Moqu 인터페이스가있는 컬렉션 2 개

저는 xunit 및 단위 테스트에서 신작입니다. 여기에 코드가 있고 두 목록의 컬렉션을 주장하려고합니다. 그러나 나는이 시험을 주장하고 통과시키는 방법을 모른다.

var getAllStudentDetailsExempt1 = studentRepo 
    .Setup(s => s.GetStudents()) 
    .Returns(listOfStudents.Where(x => x.StudentId != number)); 

당신이 var getAllStudentDetailsExempt1 필요하지 않습니다, 당신은 단지 설정이 당신의 repo-모의 ...

studentRepo 
    .Setup(s => s.GetStudents()) 
    .Returns(listOfStudents.Where(x => x.StudentId != number)); 

당신은 아마 할 수 있습니다 : 여기 내 코드는

[Theory] 
    [InlineData(1)] 
    public void GetAllStudents_Exempt1(int number) 
    { 
     // arrange 
     var studentRepo = new Mock<IStudentRepository>(); 
     var listOfStudents = new List<Student> { new Student { StudentId = 1, Firstname = "Firstname1", Lastname = "Firstname1" }, 
     new Student{StudentId=2, Firstname="Firstname2",Lastname="Lastname2"} }; 

     var getAllStudentDetailsExempt1 = studentRepo.Setup(s => s.GetStudents()).Returns(listOfStudents.Where(x => x.StudentId != number)); 

     var studentService = new StudentService(studentRepo.Object); 

     // act 
     var getStudentsDetails = studentService.ListOfStudentsExempt1(1); 

     // assert 
     // I don't have any idea how to assert 
    } 

답변

1

먼저 몇 가지 참고 사항입니다 변경할 수 :

// act 
var getStudentsDetails = studentService.ListOfStudentsExempt1(1); 

t 오 일부 속성을 확인하여 당신이 주장 할 수 그럼 ...

// act 
var getStudentsDetails = studentService.ListOfStudentsExempt1(number); 

number 변수를 사용

Assert.Equals(1, getStudentsDetails.Count); 
Assert.Equals("FirstName1", getStudentsDetails.First().Firstname); 

등 등

이에게 기회를 줘!