Модульное тестирование с использованием минимального заказа для ядра APIC#

Место общения программистов C#
Ответить
Anonymous
 Модульное тестирование с использованием минимального заказа для ядра API

Сообщение Anonymous »

Я провожу модульное тестирование с помощью MOQ, мой код посвящен API. Я уже создал сервис и репозиторий, но получаю ошибку, когда хочу вернуть результат.
Я новичок в 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);
}
}
Мне нужно протестировать оба метода: FindAll и FindById.

Подробнее здесь: https://stackoverflow.com/questions/709 ... -rest-core
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»