Skip to content

Conversation

@ccoVeille
Copy link
Collaborator

Summary

A simple change to provide more explicit errors message when testing the code while refactoring asserters

Changes

This helper is used to capture the testing.TB interface, and compare
the log output with the expected output.

This is useful for testing and refactoring purposes.

This commit improves the helper by displaying:

  • the captured and expected outputs on a newline.
  • the special characters in the captured output, such as newlines and tabs.

Both help with readability.

Here is an example of the output before and after the change:

Before:

    assertions_test.go:3422: Logged Error: Should be in error chain
        expected: *assert.customError
        in chain: "EOF" (*errors.errorString)
    assertions_test.go:3422: Should log Error: Should be in error chain:
        expected: *assert.customError
        in chain: "EOF" (*errors.errorString)

After:

    assertions_test.go:3486: Actual Logged Error:
        Should be in error chain\n
        expected: *assert.customError\n
        in chain: "EOF" (*errors.errorString)\n
    assertions_test.go:3486: Expected Logged Error:
        Should be in error chain:\n
        expected: *assert.customError\n
        in chain: "EOF" (*errors.errorString)

The new format helps to identify the differences:

  • the missing colon after "Should be in error chain"
  • the extra newline in the captured output

Motivation

I spent 10 minutes on this change, because I lost 10 minutes in
finding the differences between the captured and expected output on a
refactoring I was doing.

Related issues

None

This helper is used to capture the testing.TB interface, and compare
the log output with the expected output.

This is useful for testing and refactoring purposes.

This commit improves the helper by displaying:
- the captured and expected outputs on a newline.
- the special characters in the captured output, such as newlines and tabs.

Both help with readability.

Here is an example of the output before and after the change:

Before:

    assertions_test.go:3422: Logged Error: Should be in error chain
        expected: *assert.customError
        in chain: "EOF" (*errors.errorString)
    assertions_test.go:3422: Should log Error: Should be in error chain:
        expected: *assert.customError
        in chain: "EOF" (*errors.errorString)

After:

    assertions_test.go:3486: Actual Logged Error:
        Should be in error chain\n
        expected: *assert.customError\n
        in chain: "EOF" (*errors.errorString)\n
    assertions_test.go:3486: Expected Logged Error:
        Should be in error chain:\n
        expected: *assert.customError\n
        in chain: "EOF" (*errors.errorString)

The new format helps to identify the differences:
- the missing colon after "Should be in error chain"
- the extra newline in the captured output

Note: I spent 10 minutes on this change, because I lost 10 minutes in
finding the differences between the captured and expected output on a
refactoring I was doing.
@ccoVeille ccoVeille added test internal/testing Changes purely related to the testify testsuites labels May 8, 2025
@ccoVeille ccoVeille closed this May 13, 2025
@ccoVeille ccoVeille deleted the test-helper branch May 13, 2025 12:52
@ccoVeille
Copy link
Collaborator Author

#1741 was opened to replace this PR opened from the wrong fork

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

internal/testing Changes purely related to the testify testsuites test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants