Я использую NUnit в качестве основы тестирования и хочу протестировать оракул-запрос на конкретных данных тестирования.Я хочу получить зависимость от nuget и запустить базу данных в памяти, чтобы проверить мой запрос.Я предполагаю, что мой запрос совместим с sql, так что я думаю, что мне не нужно тестировать непосредственно на oracle.
Мой поиск до сих пор привел к этой записи вики , где, похоже, нет подходящего вбазы данных памяти.
Я также обнаружил, что «Microsoft.EntityFrameworkCore.InMemory» может использоваться для определенных сценариев, и я думаю, что мой не является одним из них.
Чтобы дать некоторый контекст - вотТестовая реализация, которая пропустит базу данных.
using NUnit.Framework;
using System.Linq;
using System.Collections.Generic;
[TestFixture]
public class ExampleFixture
{
public class JobData { public string Name { get; set; } }
public string queryUnderTest = "select j.name, j.updated from T_JOB j where j.name like '%TEST%'";
[Test]
public void TestQuery()
{
var expected = new[] { new JobData { Name = "-TEST-" } };
var Data = expected.Concat(new[] { new JobData { Name = "OTHER" } });
var dataBase = MakeInMemoryDataBase();
WriteTable(dataBase, "T_JOB", Data);
var actual = QueryAndMakeJobs(dataBase, queryUnderTest);
CollectionAssert.AreEquivalent(expected, actual);
}
private IEnumerable<JobData> QueryAndMakeJobs(object dataBase, string queryUnderTest) => Enumerable.Empty<JobData>();
private void WriteTable(object imdb, string tablename, IEnumerable<JobData> data) {}
private object MakeInMemoryDataBase() => null;
}
Я ограничен зависимостями с открытым исходным кодом, которые я могу извлечь из nuget.org.Мой единственный вариант - запустить базу данных с открытым исходным кодом на hub.docker.com.