Help us understand the problem. What is going on with this article?

The Go Playground で Test & Example がしやすくなった

More than 1 year has passed since last update.

以前までは、The Go Playground で実行できる Go Command は go run のみだったので、テストを書きたい場合

previous_test_description
package main

import "testing"

func Hello(name string) string {
    return "Hello, Emacs!"
}

func TestHello(t *testing.T) {
    if Hello("Vim") != "Hello, Vim!" {
        t.Error("Use Vim!!!")
    }
}

func matchString(a, b string) (bool, error) {
    return true, nil
}

func main() {
    testSuite := []testing.InternalTest {
        {Name: "TestHello", F: TestHello},
    }
    testing.Main(matchString, testSuite, nil, nil)
}

といった感じにまわりくどく書く必要がありました。

しかし、先日マージされたコミットにより気軽にテストができるようになりました。

テストのやり方は単純で、

  1. ソースコードに main 関数を含めない
  2. 普段テスト関数を書くように func TestXxx(*testing.T) を用意する

の2点を守ることです。

current_test_description
package main

import "testing"

func Hello(name string) string {
    return "Hello, Emacs!"
}

func TestHello(t *testing.T) {
    if Hello("Vim") != "Hello, Vim!" {
        t.Error("Use Vim!!!")
    }
}

あとは実行ボタンを押せば、特別な設定なしに自動でテストモードへと切り替わり、テストが実行されます。
なお 2018/3/23 現在、BenchExample には対応していないので、実装されるのを気長に待つか Issue を書いちゃいましょう!

【追記】2018/4/11

3月の終わりにマージされたコミット により Example にも対応しました。

  1. ソースコードに main 関数を含めない
  2. ソースコードに func TestXxx(*testing.T) 関数を含めない
  3. testing パッケージをインポートしない
  4. 普段 Example を書くように func ExampleXxx() 関数を用意する

の4点を守ることで Example を使うことができます。

cia_rana
Go言語/Ruby/渋谷で働くそふとうぇあえんじにゃーん/ Creator Support Engineer
https://medium.com/@cia_rana/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした