2008 Advent Calendar December 10th




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.

Comments (0)

Skip to main content