Во время отладки я получаю следующую ошибку:
Исключение System NotSupported.
Неподдерживаемое выражение. GetDbTransaction.
Код: Выделить всё
public async Task DeleteDataAsync(IDbContextTransaction transaction)
{
try
{
using (var command = transaction.GetDbTransaction().Connection.CreateCommand())
{
await TruncateTable(command, $"TRUNCATE TABLE MY_TABLE");
}
}
catch (Exception ex)
{
transaction.Rollback();
_logger.LogCritical($"Error occurred in DeleteDataAsync(): {ex.Message}");
}
}
Код: Выделить всё
[Test]
public async Task DeleteDataAsync_Error()
{
var transactionMock = new Mock();
var dbTransactionMock = new Mock();
var dbCommandMock = new Mock();
// Here I am trying to mock the transaction:
transactionMock.Setup(t => t.GetDbTransaction())
.Returns(dbTransactionMock.Object);
dbTransactionMock.Setup(t => t.Connection.CreateCommand())
.Returns(dbCommandMock.Object);
}
Я не могу понять, как это сделать, и уверен, что приведенный ниже модульный тест, который я написал, нуждается в модификации. Может ли кто-нибудь помочь мне здесь?