1: public class Advent10 : IDisposable 2: { 3: private IFileUtil m_file; 4:   5: private void SetUp(string content) 6: { 7: m_file = new FileUtil("SomeFile.txt"); 8: m_file.Create(content); 9: } 10:   11: public void Dispose() 12: { 13: m_file.Delete(); 14: } 15:   16: [Fact] 17: public void TestReadOK() 18: { 19: SetUp("CONTENT"); 20: string content = ""; 21: Assert.DoesNotThrow(() => { content = m_file.Read(); }); 22: Assert.Equal<string>("CONTENT", content); 23: } 24:   25: [Fact] 26: public void TestReadFails() 27: { 28: SetUp("SHOULD NOT BE ABLE TO READ THIS"); 29: m_file.Readable = false; 30: Assert.Throws<AccessViolationException>(() => { m_file.Read(); }); 31: } 32: }

Some people think a good rule of thumb is to have only one assert in each test. I think it is OK to have more if the assert adds value if an unexpected failure happens. In this case I think line 21 does not really add value. If an exception is thrown the framework will report the unexpected exception anyway so let's get rid of that one.