Тестирование валидаций C # - PullRequest
0 голосов
/ 30 мая 2018

Ниже я вставил свой код.Я утверждаю меру.Я написал код, который будет читать файл Linux.Но если бы я хотел передать несколько имен файлов здесь, это было бы возможно?так, например, вместо проверки только одного файла я могу выполнить цикл, чтобы он мог подготовить несколько файлов за один раз.

После прочтения и продолжения файла я возвращаю actualItemData.В моем следующем методе я хочу позвонить этому actualItemData, чтобы данные были опубликованы в моем var actual

   public string validateMeasurement
    {
        var processFilePath = **"/orabin/app/oracle/inputs/ff/ff/actuals/xx_ss_x.csv.ovr";**
        var actualItemData = Common.LinuxCommandExecutor.
            RunLinuxcommand("cat " + processFilePath);

        **return actualItemData;** 
    }

    public void validateInventoryMeasurementValue(string Data, string itemStatus)
    {

        var expected = '6677,6677_6677,3001,6';

        **var actual = actualItemData);**


        Assert.AreEqual(expected, actual);
    }

1 Ответ

0 голосов
/ 30 мая 2018

Похоже, вы используете msunit.Насколько я знаю, он не поддерживает тестовые случаи.Если бы вы использовали nunit, вы могли бы сделать это с помощью атрибута TestCase.

[TestCase("myfile1.txt", "6677,6677_6677,3001,6")]
[TestCase("myfile2.txt", "1,2,3")]
public void mytest(string path, string expected) 
{
    var actual = Common.LinuxCommandExecutor.
        RunLinuxcommand("cat " + path);

    Assert.AreEqual(expected, actual);
}

Как правило, вы не хотите писать модульные тесты, которые пересекают границы кода (чтение файлов, попадание в базу данных и т. Д.).) поскольку эти тесты имеют тенденцию быть хрупкими и сложными в обслуживании.Я не уверен в цели вашего кода, но, возможно, вы пытаетесь проанализировать данные, чтобы проверить их достоверность.Если это так, вы можете написать серию тестов, чтобы гарантировать, что, когда вашему производственному коду (анализатору) будет задан строковый ввод, вы получите вывод, соответствующий вашим ожиданиям.например,

[Test()]
public void Parse_GivenValidDataFromXX_S_X_CSV_ShouldReturnTrue(string filename) 
{
  // Arrange
  var parser = CreateParser(); // factory function that returns your parser
  // Act
  var result = parser.Parse("6677,6677_6677,3001,6");
  // Arrage
  Assert.IsTrue(result);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...