using System.Data.Common;
using System.Threading.Tasks;
static async Task Main(string[] args)
var mockConnection = new Mock<DbConnection>();
mockConnection.SetupDapperAsync(c => c.ExecuteAsync(It.IsAny<CommandDefinition>()));
mockConnection.As<IDbConnection>().Setup(c => c.BeginTransaction()).Returns(() => new Mock<DbTransaction>().Object);
await DoSomething(mockConnection.Object).ConfigureAwait(false);
static async Task DoSomething(IDbConnection connection)
using (var tx = connection.BeginTransaction())
await connection.ExecuteAsync("SELECT * FROM ALL_YOUR_BASE_ARE_BELONG_TO_US WHERE @TickTock = 1", new { TickTock = DateTimeOffset.Now.Second % 2 }, transaction: tx).ConfigureAwait(false);