1: public class Advent2 2: { 3: [Fact] 4: public void TestRead() 5: { 6: // Create a test file 7: IFileUtil file = new FileUtil("SomeFile.txt"); 8: file.Create("CONTENT"); 9:   10: // Should be able to read file 11: try 12: { 13: file.Read(); 14: } 15: catch (Exception) 16: { 17: throw new AssertException("Unexpected exception thrown"); 18: } 19:   20: file.Readable = false; 21:   22: // Should NOT be able to read file. 23: try 24: { 25: file.Read(); 26: throw new AssertException("No exception thrown"); 27: } 28: catch (AccessViolationException) 29: { 30: } 31: catch (Exception) 32: { 33: throw new AssertException("Unexpected exception thrown"); 34: } 35:   36: // Clean up 37: file.Delete(); 38: } 39: }

Now I've added a handler for unexpected exceptions but this is still a pretty cumbersome way to write tests verifying that exceptions are thrown or not correctly. Especially since Xunit.net provides us with a really simple way to handle this for us. That is what will happen next.