Написание теста в Mock имя файла - PullRequest
0 голосов
/ 29 июня 2018

У меня есть метод, который вызывается из кода формы Windows, он принимает string[] имя файла. Проблемы, которые я чувствую себя виноватыми при написании юнит-теста для ReadFile(). Так как у меня нет способа издеваться над именем файла. Пожалуйста, помогите, если есть способ издеваться над именем файла

Это метод

 public Results ImportData(string[] fileNames)
        {
            List<ListViews> listViewDataItems = new List<ListViews>();

            try
            {
                foreach (var filename in fileNames)
                {

                    var readResults = ReadFile(filename);//unit test for this
                    var mapResults = MappingData(readResults);
                    var listViewDataItemsMiniBucket = ImportToDatabase(mapResults, filename);
                    listViewDataItems.Add(listViewDataItemsMiniBucket);
                }
            }
            catch (Exception ex)
            {
                ErrorLogger.Instance.SendErrorToFile(ex);
                return new Results
                {
                    DescripText = ex.ToString(),
                    Success = false
                };
            }
            return new Results { Success = true, Objects = listViewDataItems };
        }

Функция FileName

 public DataSet ReadFile(string filePath)
        {
            using (var stream = new FileStream(filePath, FileMode.Open))
            {
                var reader = GetExcelDataReaderExtension(stream, filePath);

                using (reader)
                {
                    return reader.AsDataSet(new ExcelDataSetConfiguration()
                    {
                        ConfigureDataTable = _ => new ExcelDataTableConfiguration()
                        {
                            FilterRow = rowReader => rowReader.Depth > Constants.HeaderIndex
                        }
                    });
                }
            }
        }

Юнит тест ниже

  [Fact]
        public void ReadTest()
        {

            Import test = new Import();
            var filePath = Directory.GetCurrentDirectory() + "\\Files\\";
            var fileName = "Refund Cases Cancelled in November 2016 - filenameCopy.xlsx";
            var file = filePath + fileName;

            var readResults = test.ReadFile(file);
            Assert.False(readResults.HasErrors);
        }

Юнит-тест ImportData ()

 [Fact]
        public void ImportData()
        {
            Import test = new Import();
            var filePath = Directory.GetCurrentDirectory() + "\\Files\\";

            var files = new[]
            {
             filePath+"Refund Cases Cancelled in November 2016 - Copy - Copy.xlsx",
             filePath+"Refund Cases Cancelled in November 2016 - Copy - Copy.xlsx"
            };
            var results = test.ImportData(files).Success;

            Assert.True(results);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...