Skip to content

Instantly share code, notes, and snippets.

@alexandervantrijffel
Last active April 5, 2017 13:36
Show Gist options
  • Save alexandervantrijffel/d52749587ec9be13f472d13747e3585d to your computer and use it in GitHub Desktop.
Save alexandervantrijffel/d52749587ec9be13f472d13747e3585d to your computer and use it in GitHub Desktop.

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");  
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment