De looptijd van integratietesten die b.v. het aanmaken van een database of het publiceren van events testen kan flink uiteenlopen afhankelijk van het aantal testen dat parallel uitgevoerd wordt of de snelheid van de (build) machine. Met Polly kan je heel elegant op een circuit breaker achtige wijze de asserts uitvoeren.
Voorbeeld:
[TestCase("T001")]
[TestCase("ImportedDataSummary")]
public void Has_created_tables(string tableName)
{
// Check if T001 table and retry for up to 26 seconds with different intervals
var databaseFound = Policy
.HandleResult(false)
.WaitAndRetry(new[] { TimeSpan.FromMilliseconds(50), TimeSpan.FromSeconds(250), TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(5), TimeSpan.FromSeconds(20) })
.Execute(() => _node.IsTableCreated(_importId, tableName));
Assert.IsTrue(databaseFound, $"Table {tableName} not found");
}