Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单元测试服务Moq设置未返回值_C#_Moq_Xunit - Fatal编程技术网

C# 单元测试服务Moq设置未返回值

C# 单元测试服务Moq设置未返回值,c#,moq,xunit,C#,Moq,Xunit,我正在尝试为我的服务层编写一个单元测试。 这是我正在写的测试。我正试图得到回复,我对嘲弄有意见。当我调试saveCustomerRecordTextFile.WriteToDiskCustomerRecordAsync方法时,返回null,我不确定我做错了什么 public class InvitationServiceTests { private readonly Mock<ITranformToCustomerDistanceRecord> _customer

我正在尝试为我的服务层编写一个单元测试。 这是我正在写的测试。我正试图得到回复,我对嘲弄有意见。当我调试saveCustomerRecordTextFile.WriteToDiskCustomerRecordAsync方法时,返回null,我不确定我做错了什么

  public class InvitationServiceTests
  { 
    private readonly Mock<ITranformToCustomerDistanceRecord> _customerRecordFileReader;
    private readonly Mock<ISaveInviteeRecord> _customerRecordFileOutputWriter;
    private readonly Mock<ICustomerDistanceFromDublinOffice> _distanceFromDublinOffice;
    private readonly Mock<ISaveCustomerRecord> _saveCustomerRecordTextFile;
    public InvitationServiceTests()
    {
        _customerRecordFileReader = new Mock<ITranformToCustomerDistanceRecord>();
        _customerRecordFileOutputWriter = new Mock<ISaveInviteeRecord>();
        _distanceFromDublinOffice = new Mock<ICustomerDistanceFromDublinOffice>();
        _saveCustomerRecordTextFile = new Mock<ISaveCustomerRecord>();
   }

[Fact]
public void InvitationService_return_statusOk()
{

    _saveCustomerRecordTextFile.Setup(c => c.WriteToDiskCustomerRecordAsync(It.IsAny<IFormFile>())).Returns(Task.FromResult(It.IsAny<string>()));

    var invitationService = new InvitationService(_customerRecordFileReader.Object,
        _customerRecordFileOutputWriter.Object,
        _distanceFromDublinOffice.Object,
        _saveCustomerRecordTextFile.Object);

    var s = invitationService.InviteToDublinOfficeAsync(It.IsAny<IFormFile>());

}
代码实现:

    public class InvitationService : IInvitationService
    {
        private readonly ITranformToCustomerDistanceRecord _customerRecordFileReader;
        private readonly ISaveInviteeRecord _customerRecordFileOutputWriter;
        private readonly ICustomerDistanceFromDublinOffice _distanceFromDublinOffice;
        private readonly ISaveCustomerRecord _saveCustomerRecordTextFile;

        public InvitationService(
            ITranformToCustomerDistanceRecord customerRecordFileReader, 
            ISaveInviteeRecord customerRecordFileOutputWriter,
            ICustomerDistanceFromDublinOffice distanceFromDublinOffice,
            ISaveCustomerRecord saveCustomerRecordTextFile)
        {   
            _customerRecordFileReader = customerRecordFileReader ?? throw new ArgumentNullException(nameof(customerRecordFileReader)); 
            _customerRecordFileOutputWriter = customerRecordFileOutputWriter ?? throw new ArgumentNullException(nameof(customerRecordFileOutputWriter));
            _distanceFromDublinOffice = distanceFromDublinOffice ?? throw new ArgumentNullException(nameof(distanceFromDublinOffice));
            _saveCustomerRecordTextFile = saveCustomerRecordTextFile ?? throw new ArgumentNullException(nameof(saveCustomerRecordTextFile));

        }
        public async Task<InviteeResponse> InviteToDublinOfficeAsync(IFormFile file)
        {
           var filepath =  await _saveCustomerRecordTextFile.WriteToDiskCustomerRecordAsync(file);
           var customerRecords = _customerRecordFileReader.MappingFromTextFileToCustomerRecord(filepath);
           var customerRecordsWithDistance = _distanceFromDublinOffice.TransformCustomerRecordToInviteeDistanceRecord(customerRecords);
           return  _customerRecordFileOutputWriter.WriteToDiskInviteeToOffice(customerRecordsWithDistance);
        }
    } 
.ReturnsTask.fromsultit.IsAny;您不应该在return语句中使用It类


将其替换为您想要的任何值,如字符串。空或smthn

仅链接的答案应视为注释