| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package reporting
- import (
- "strings"
- "testing"
- )
- func TestNoopProblemReporterActions(t *testing.T) {
- file, reporter := setup()
- reporter.BeginStory(nil)
- reporter.Enter(nil)
- reporter.Exit()
- expected := ""
- actual := file.String()
- if expected != actual {
- t.Errorf("Expected: '(blank)'\nActual: '%s'", actual)
- }
- }
- func TestReporterPrintsFailuresAndErrorsAtTheEndOfTheStory(t *testing.T) {
- file, reporter := setup()
- reporter.Report(NewFailureReport("failed"))
- reporter.Report(NewErrorReport("error"))
- reporter.Report(NewSuccessReport())
- reporter.EndStory()
- result := file.String()
- if !strings.Contains(result, "Errors:\n") {
- t.Errorf("Expected errors, found none.")
- }
- if !strings.Contains(result, "Failures:\n") {
- t.Errorf("Expected failures, found none.")
- }
- // Each stack trace looks like: `* /path/to/file.go`, so look for `* `.
- // With go 1.4+ there is a line in some stack traces that looks like this:
- // `testing.(*M).Run(0x2082d60a0, 0x25b7c0)`
- // So we can't just look for "*" anymore.
- problemCount := strings.Count(result, "* ")
- if problemCount != 2 {
- t.Errorf("Expected one failure and one error (total of 2 '*' characters). Got %d", problemCount)
- }
- }
- func setup() (file *memoryFile, reporter *problem) {
- monochrome()
- file = newMemoryFile()
- printer := NewPrinter(file)
- reporter = NewProblemReporter(printer)
- return
- }
|