gotest_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package reporting
  2. import "testing"
  3. func TestReporterReceivesSuccessfulReport(t *testing.T) {
  4. reporter := NewGoTestReporter()
  5. test := new(fakeTest)
  6. reporter.BeginStory(NewStoryReport(test))
  7. reporter.Report(NewSuccessReport())
  8. if test.failed {
  9. t.Errorf("Should have have marked test as failed--the report reflected success.")
  10. }
  11. }
  12. func TestReporterReceivesFailureReport(t *testing.T) {
  13. reporter := NewGoTestReporter()
  14. test := new(fakeTest)
  15. reporter.BeginStory(NewStoryReport(test))
  16. reporter.Report(NewFailureReport("This is a failure."))
  17. if !test.failed {
  18. t.Errorf("Test should have been marked as failed (but it wasn't).")
  19. }
  20. }
  21. func TestReporterReceivesErrorReport(t *testing.T) {
  22. reporter := NewGoTestReporter()
  23. test := new(fakeTest)
  24. reporter.BeginStory(NewStoryReport(test))
  25. reporter.Report(NewErrorReport("This is an error."))
  26. if !test.failed {
  27. t.Errorf("Test should have been marked as failed (but it wasn't).")
  28. }
  29. }
  30. func TestReporterIsResetAtTheEndOfTheStory(t *testing.T) {
  31. defer catch(t)
  32. reporter := NewGoTestReporter()
  33. test := new(fakeTest)
  34. reporter.BeginStory(NewStoryReport(test))
  35. reporter.EndStory()
  36. reporter.Report(NewSuccessReport())
  37. }
  38. func TestReporterNoopMethods(t *testing.T) {
  39. reporter := NewGoTestReporter()
  40. reporter.Enter(NewScopeReport("title"))
  41. reporter.Exit()
  42. }
  43. func catch(t *testing.T) {
  44. if r := recover(); r != nil {
  45. t.Log("Getting to this point means we've passed (because we caught a panic appropriately).")
  46. }
  47. }
  48. type fakeTest struct {
  49. failed bool
  50. }
  51. func (self *fakeTest) Fail() {
  52. self.failed = true
  53. }