Go Testing: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 6: Line 6:


=Overview=
=Overview=
Go comes with a lightweight test framework that includes the [[Go_Tool#test|<code>go test</code>]] command and the <code>[[Go Package testing#Overview|testing]]</code> package.
Go comes with a lightweight test framework that includes the [[Go_Tool#test|<code>go test</code>]] command and the <code>[[Go Package testing#Overview|testing]]</code> package. The tests live in <code>*_test.go</code> files.


The tests live in <code>*_test.go</code> files.
=Write a Unit Test=


Also see [[Go_Packages#External_Test_Packages|external test packages]].
Also see [[Go_Packages#External_Test_Packages|external test packages]].

Revision as of 00:10, 14 September 2023

External

Internal

Overview

Go comes with a lightweight test framework that includes the go test command and the testing package. The tests live in *_test.go files.

Write a Unit Test

Also see external test packages.

TO DEPLETE

Writing a Unit Test

  • Write a _test.go test file. They should belong to the same package as the tested code. These files are ignored by the compiler and only compiled and executed when go test is run.
  • Import "testing"
  • Tests are identified as functions starting with Test_... and taking an argument (t *testing.T).
package blue

import "testing"

func TestBlue(t *testing.T) {
    ...
    t.Error("expected this, got ", ...)
}

Then

go test

The command will look for any tests in any of the files in the current folder and run them.

TODO testing idiom "Introducing Go" page 96.