各言語のテストコードのメモ

テストの書き方のメモ

たまに忘れるので、随時更新。 プログラムの例は 足し算するだけの add関数

Python

テストツールは nose を使います。

$ pip install nose

で入ります。

add関数

# calc.py
def add(a: int, b: int) -> int:
    return a+b

テストコード

# test_calc.py
import unittest
from nose.tools import ok_, eq_
import calc

class TestCalc(unittest.TestCase):
    def test_add(self):
        value = calc.add(1,5)
        eq_(6, value)

テスト実行

$ nosetests -v

Golang

add関数

# calc.go
package main

func add(a, b int) int {
        return a + b
}

テストコード

# calc_test.go
package main

import (
    "testing"
    "fmt"
)
func TestSum(t *testing.T) {
        if add(1, 2) != 3 {
                // Failed Message
                t.Fatal("sum(1,2) should be 3, but doesn't match")
        }
}

テスト実行

$ go test -cover -v

glide 入れてるなら

$ go test -cover -v `glide novendor`

Ruby

rspec を用いて Ruby のコードをテストします。

Gemfileを使って rspec をインストール

Gemfile を使って rspec を入れます。

Gemfile生成

$ bundle init

Gemfileをいじる

$ vim Gemfile

source "https://rubygems.org"

gem "rspec"

インストール

$ bundle install

入ってるか確認

$ bundle exec rspec -v
3.5.4

add関数

# calc.rb
def add(a, b)
  a + b
end

テストコード

テストコードをまとめるディレクトリを作ります。

$ mkdir spec

テストコード

# spec/calc_test.rb
require "./calc"

describe 'add' do
  it '1 + 1 = 2' do
    expect(add(1, 2)).to eq 3
  end
  it '10 - 1 は 9 になること' do
    expect(add(10, -1)).to eq 9
  end
end

テスト実行

$ bundle exec rspec