2019年7月31日水曜日

開発環境

Head First Go (Jay McGavren(著)、O'Reilly Media)のChapter 8(building storage - Structs)、Exercise(247)の解答を求めてみる。

コード

sample3_test.go

package main

import "testing"

func TestCar(t *testing.T) {
 var mustang car
 mustang.name = "Mustang Cobra"
 mustang.topSpeed = 225
 nitroBoost(&mustang)

 want1 := "Mustang Cobra"
 got1 := mustang.name
 if got1 != want1 {
  t.Errorf("name = %s, want %s", got1, want1)
 }
 want2 := 275.0
 got2 := mustang.topSpeed
 if got2 != want2 {
  t.Errorf("topSpeed = %v, want %v", got2, want2)
 }
}

func TestPart(t *testing.T) {
 var fuses part
 fuses.description = "Fuses"
 fuses.count = 5
 doublePack(&fuses)
 want1 := "Fuses"
 got1 := fuses.description
 if got1 != want1 {
  t.Errorf("description = %v, want %v", got1, want1)
 }
 want2 := 10
 got2 := fuses.count
 if got2 != want2 {
  t.Errorf("count = %v, want %v", got2, want2)
 }
}

sample3.go

package main

type car struct {
 name     string
 topSpeed float64
}

func nitroBoost(c *car) {
 c.topSpeed += 50
}

type part struct {
 description string
 count       int
}

func doublePack(p *part) {
 p.count *= 2
}

func main() {}

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)

$ go test
# _/.../go/Head_First_Go/ch8/sample3 [_/.../go/Head_First_Go/ch8/sample3.test]
./sample3_test.go:6:14: undefined: car
./sample3_test.go:9:2: undefined: nitroBoost
./sample3_test.go:24:12: undefined: part
./sample3_test.go:27:2: undefined: doublePack
FAIL _/.../go/Head_First_Go/ch8/sample3 [build failed]
$ go test
--- FAIL: TestCar (0.00s)
    sample3_test.go:19: topSpeed = 225, want 275
--- FAIL: TestPart (0.00s)
    sample3_test.go:36: count = 5, want 10
FAIL
exit status 1
FAIL _/.../go/Head_First_Go/ch8/sample3 0.005s
$ go test
# _/.../go/Head_First_Go/ch8/sample3 [_/.../go/Head_First_Go/ch8/sample3.test]
./sample3_test.go:9:12: cannot use mustang (type car) as type *car in argument to nitroBoost
./sample3_test.go:27:12: cannot use fuses (type part) as type *part in argument to doublePack
FAIL _/.../go/Head_First_Go/ch8/sample3 [build failed]
$ go test
PASS
ok   _/.../go/Head_First_Go/ch8/sample3 0.005s
$ 

0 コメント:

コメントを投稿