Как я могу получить список сущностей из существующих данных с помощью ServiceStack.OrmLite? - PullRequest
1 голос
/ 16 мая 2019

Я использую тестовые данные для запуска интеграционных тестов. Поэтому я использую следующий метод

public static IEnumerable<ProductPhase> GetProductPhases()
{
    return new List<ProductPhase>
    {
        new ProductPhase { Id = "FirstPhase", Order = 1 },
        new ProductPhase { Id = "SecondPhase", Order = 2 },
        new ProductPhase { Id = "ThirdPhase", Order = 3 }, // ...
    }
}

[Test]
public void MyTest()
{
    using (var db = HostContext.TryResolve<IDbConnectionFactory>.OpenDbConnection())
    {
        db.DeleteAll<ProductPhase>();
        db.InsertAll(GetProductPhases());
    }

    // Do test stuff ...
}

Чтобы полностью проверить мои интеграционные тесты, мне нужно синхронизироваться с данными, которые вставляются в производство. Эти данные могут содержать десятки строк, и каждый раз, когда мне нужно вручную выполнить рефакторинг GetProductPhases() метода, я нахожусь рядом с reality .

Я ищу метод выбора существующих данных SQL для чего-то, что я могу скопировать и вставить в ProductPhase инициализатор объекта.

Итак, возможность вызывать что-то вроде:

db.Select<ProductPhase>().DumpList() // where db is connected to production server, so I can get actual values and it returns a string with new List<ProductPhase> { new ProductPhase { Id = "FirstPhase", Order = 1 }, new ProductPhase { Id = "SecondPhase", Order = 2 }, new ProductPhase { Id = "ThirdPhase", Order = 3 }, // ... }

Может быть, есть лучший способ сделать это, я не знаю, я открыт для альтернатив.

Спасибо.

1 Ответ

1 голос
/ 16 мая 2019

Я бы сохранил результаты в CSV с методом расширения .ToCsv(), чем десериализовал бы его перед началом теста.Обычно я сохраняю CSV во внешнем файле .csv (который настроен для копирования в выходную папку), поэтому его легко обновить.

...