Я новичок в moq и не могу понять, как его использовать с moq.
Это мой репозиторий
Код: Выделить всё
public interface ICourseRepository
{
Task FindAll();
Task FindById(int id);
Task FindByIds(List ids);
void Insert(Course Course);
Task Delete(int id);
void Update(Course Course);
Task Save();
}
Код: Выделить всё
public class CourseService: ICourseService {
private readonly ICourseRepository _courseRepository;
private readonly IMapper _mapper;
private ICourseRepository @object;
private IMapper object1;
public CourseService(ICourseRepository courseRepository, IMapper mapper) {
_courseRepository = courseRepository;
_mapper = mapper;
}
public CourseService(ICourseRepository @object) {
this.@object = @object;
}
public CourseService(IMapper object1) {
this.object1 = object1;
}
public async Task < List < CourseDto >> FindAll() {
List < Course > course = await _courseRepository.FindAll();
return _mapper.Map < List < Course > , List < CourseDto >> (course);
}
public async Task < CourseDto ? > FindById(int id) {
Course ? course = await _courseRepository.FindById(id);
return course == null ? null : _mapper.Map < Course, CourseDto > (course);
}
}
}
Код: Выделить всё
public class CourseServiceTest {
private readonly CourseService _sut;
private readonly Mock < ICourseRepository > _courseRepoMock = new Mock < ICourseRepository > ();
private readonly Mock < IMapper > _mapperMock = new Mock < IMapper > ();
public CourseServiceTest() {
_sut = new CourseService(_courseRepoMock.Object);
//_sut = new CourseService(_mapperMock.Object);
}
[Fact]
public async Task GetAllCoursesById() {
//Arrange
var courseId = 1;
var courseName = "Esta es una prueba";
var courseDescription = "Description";
var courseDuration = 34.5;
var courseRating = 34.5;
var courseDeleted = false;
var courseCreatedBy = 1;
var courseUpdatedBy = 1;
var courseDto = new CourseDto {
Name = courseName,
Description = courseDescription,
Duration = courseDuration,
Rating = courseRating,
Deleted = courseDeleted,
CreatedBy = courseCreatedBy,
UpdatedBy = courseUpdatedBy
};
_courseRepoMock.Setup(x => x.FindById(courseId)).ReturnsAsync(CourseDto);
//Act
var course = await _sut.FindById(courseId);
//Assert
Assert.Equal(courseId, course.Id);
Assert.Equal(courseDescription, course.Description);
Assert.Equal(courseDuration, course.Duration);
Assert.Equal(courseRating, course.Rating);
Assert.Equal(courseDeleted, course.Deleted);
Assert.Equal(courseCreatedBy, course.CreatedBy);
Assert.Equal(courseUpdatedBy, course.UpdatedBy);
}
}
Подробнее здесь: https://stackoverflow.com/questions/709 ... -rest-core
Мобильная версия