C# 依赖于依赖项异常的单元测试

C# 依赖于依赖项异常的单元测试,c#,unit-testing,exception,dependencies,C#,Unit Testing,Exception,Dependencies,我继承了一些单元测试,其中ConsumerCreateService依赖于ConsumerGateService。测试断言,如果找不到用户,将引发ConsumerNotFoundException,我唯一的问题是SUT的方法本身没有执行检查并引发异常,这是依赖项ConsumerGetService 测试: public async void Create_Requires_Existing_Consumer() { //Arrange

我继承了一些单元测试,其中ConsumerCreateService依赖于ConsumerGateService。测试断言,如果找不到用户,将引发ConsumerNotFoundException,我唯一的问题是SUT的方法本身没有执行检查并引发异常,这是依赖项ConsumerGetService

测试:

        public async void Create_Requires_Existing_Consumer()
        {
            //Arrange
            var consumerService = await Arrange();

            //Act
            var consumerReference = new ConsumerReference(Guid.NewGuid().ToString());
            Task<Result> Act() => consumerService.Create(consumerReference, new CreateRequest(),
                new CreateRequestFlags() { ReturnData = returnData });

            //Assert
            await Assert.ThrowsAsync<NotFoundException>(Act);
        }
我的逻辑是,这不是我正在测试的方法的一部分,因此测试是多余的,因为ConsumerGetService应该有自己的测试。然而,您可能会争辩说,如果ConsumerGetService.Get(按设计)找不到消费者时不再抛出和异常,会发生什么


有什么想法吗?

请详细说明您的问题。例如,你使用什么语言?或者,您可以添加单元测试代码,让其他人更清楚地了解您的问题。
        public async Task<Result> Create(ConsumerReference consumerReference, CreateRequest value, CreateRequestFlags requestFlags)
        {
            if (consumerReference == null)
                throw new ArgumentNullException(nameof(consumerReference));
            if (value == null)
                throw new ArgumentNullException(nameof(value));
            if (requestFlags == null)
                throw new ArgumentNullException(nameof(requestFlags));


            var consumer = await _consumerGetService.Get(consumerReference.ConsumerId);
            var response = await AddMember(consumer, requestFlags);

            _serviceBusCreateService.QueueCreate(_mapper.Map<ServiceBusCreateRequest>(consumer));
            
            switch (requestFlags.ReturnData)
            {
                case BasicReturnData.All:
                    var result = _mapper.Map<CreateResult>(response.Data);
                    return new Result(consumerReference.ConsumerId, result);
                case BasicReturnData.None:
                    return new Result(consumerReference.ConsumerId);
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }
            var consumer = await _consumerRepository.GetActiveOrInactiveById(new ConsumerDocumentId(id));
            if (consumer == null || consumer.IsSoftDeleted || consumer.IsScheduledForDeletion)
            {
                throw new NotFoundException();
            }