Сбой теста при имитации вставки в базу данных - PullRequest
0 голосов
/ 23 апреля 2019

Пожалуйста, найдите ссылку на источник проекта: https://bitbucket.org/danchi/salescheese/src/master/

Там у меня проблема с проверкой одного доменного объекта

public class RegisterStockUseCaseUnitTests
    {
        [Fact]
        public async void Can_Register_Stock()
        {


            //arrange
            var mockProductRepository = new Mock<IProductRepository>();
            var mockStockRepository = new Mock<IStockRepository>();
            var mockUserRepository = new Mock<IUserRepository>();
            var mockStorageLocationRepository = new Mock<IStorageLocationRepository>();

            mockProductRepository.Setup(repo => repo.FindById(It.IsAny<int>()))
                .Returns(Task.FromResult(true));

            mockUserRepository.Setup(repo => repo.FindById(It.IsAny<string>()))
                .Returns(Task.FromResult(true));

            mockStorageLocationRepository.Setup(repo => repo.FindById(It.IsAny<int>()))
                .Returns(Task.FromResult(true));

            var useCase = new RegisterStockUseCase(mockStockRepository.Object,mockProductRepository.Object,mockUserRepository.Object, mockStorageLocationRepository.Object);

            var mockOutputPort = new Mock<IOutputPort<RegisterStockResponse>>();

            mockOutputPort.Setup(outputPort => outputPort.Handle(It.IsAny<RegisterStockResponse>()));


            //act
            var response =
                await useCase.Handle(new RegisterStockRequest(5, "userId", StockType.Output, UnitOfMeasure.Grams,10,1),
                    mockOutputPort.Object);

            //assert
            Assert.True(response);

        }
    }

При отладке я получаю: System.NullReferenceException: 'Ссылка на объект не установлена ​​для экземпляра объекта.' Я не могу понять, что, вы можете мне помочь? Постскриптум Любая идея, как улучшить тесты, приветствуется. Все они создаются с помощью TDD. Спасибо

[Обновление 1] enter image description here

1 Ответ

0 голосов
/ 23 апреля 2019

О, я забыл настроить макет для создания акций, поэтому я пропустил следующую часть кода

    mockStockRepository.Setup(repo => repo.Create(It.IsAny<Stock>()))
        .Returns(Task.FromResult(new CreateStockResponse(1, true)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...