Наконец, вы готовы к тому, чтобы реализовать всю задачу, поставленную два слайда назад!
В классе FieldsParserTask реализуйте метод ParseLine, для которого вы создавали тесты в предыдущей задаче.
Создайте модульные тесты на это решение и перенесите разработанные в прошлой задаче тестовые случаи в модульные тесты.
Решение получится более простым, если ваши вспомогательные методы будут использовать Token
в качестве возвращаемого значения.
В качестве вспомогательных методов могут быть методы, читающие разные виды полей (у вас уже реализован метод ReadQuotedField
), а также метод пропускающий пробелы между полями.
Обратите внимание на метод GetIndexNextToToken
в классе Token
. Он возвращает позицию, с которой нужно продолжить анализ строки.
using System.Collections.Generic;
using System.Linq;
using NUnit.Framework;
namespace TableParser
{
[TestFixture]
public class FieldParserTaskTests
{
public static void Test(string input, string[] expectedResult)
{
var actualResult = FieldsParserTask.ParseLine(input);
Assert.AreEqual(expectedResult.Length, actualResult.Count);
for (int i = 0; i < expectedResult.Length; ++i)
{
Assert.AreEqual(expectedResult[i], actualResult[i].Value);
}
}
Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂