Иногда хочется просто написать мужицкий SQL запрос без всяких ORM
Но вот незадача, несмотря на наличие абстракций по типу DbConnection, DbCommand и так далее
Не понятно, как такой код тестировать - как будто только интеграционники, и тут их адепты могут начать плясать с радостной пеной у рта
Но не тут было: на просторах GitHub нашлась библиотека, которая решает проблему
Например, есть сервис, который сравнивает кол-во строк в двух таблицах
Тогда замокировать можно следующим образом:
var mockDbConnection = new MockDbConnection();
mockDbConnection.Mocks
.When(cmd => cmd.CommandText.Contains("count(*) from t1"))
.ReturnsTable(
MockTable.WithColumns("Count")
.AddRow(1));
mockDbConnection.Mocks
.When(cmd => cmd.CommandText.Contains("count(*) from t2"))
.ReturnsTable(
MockTable.WithColumns("Count")
.AddRow(2));
Товарищу предлагаю накинуть звёзд