4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Test Suiteってなに?

Last updated at Posted at 2024-06-14

記事を書くきっかけ

Goで自動テストを作成する際にstretchr/testifyを使用しているのですが、suiteをよく使います。最初はライブラリ特有のものと思いsuiteについて調べていたのですが、Test suiteという言葉があったことに驚きこの記事を書こうと思いました。

Test Suiteとは

一言でいうと、同じ種類のテストケースの集合体です。(bunch of test cases grouped for a specific purpose)
suiteの意味:組、揃(そろ)い、続きの間、スウィートルーム、

わかりやすくするために、user gatewayのunittestを例に説明します。
user gatewayのテストスイートがあり、その中にはCRUD操作に対応するテストケースが含まれています。具体的には、新規ユーザー作成(Create)、ユーザー情報の取得(Read)、ユーザー情報の更新(Update)、およびユーザー削除(Delete)に関するテストケースがそれぞれあります。これらのテストケースを一つのスイートにまとめることで、関連するテストを一括で管理・実行することができます。

Test Suiteのメリット

Test Suiteを使用することで、テストの管理が容易になります。例えば、ある機能に対して多くのテストケースが存在する場合、それらを1つのTest Suiteにまとめることで、テストの実行順序や依存関係を管理しやすくなります。また、特定のTest Suiteだけを選択して実行することも可能で、効率的なテストが可能となります。

test suiteを使用したサンプルコード

下記コードだと、ExampleTestSuiteがテストケースをまとめるtest suiteであり、その中にある同じ目的を持ったテストケースがTestExampleTestSuiteになります。
なので、もしTestExampleFailureTestSuiteのようなテストケースがあると同じtest suite内に属することになりいます。

// Basic imports
import (
    "testing"
    "github.com/stretchr/testify/assert"
    "github.com/stretchr/testify/suite"
)

// Define the suite, and absorb the built-in basic suite
// functionality from testify - including a T() method which
// returns the current testing context
type ExampleTestSuite struct {
    suite.Suite
    VariableThatShouldStartAtFive int
}

// Make sure that VariableThatShouldStartAtFive is set to five
// before each test
func (suite *ExampleTestSuite) SetupTest() {
    suite.VariableThatShouldStartAtFive = 5
}

// All methods that begin with "Test" are run as tests within a
// suite.
func (suite *ExampleTestSuite) TestExample() {
    assert.Equal(suite.T(), 5, suite.VariableThatShouldStartAtFive)
}

// In order for 'go test' to run this suite, we need to create
// a normal test function and pass our suite to suite.Run
func TestExampleTestSuite(t *testing.T) {
    suite.Run(t, new(ExampleTestSuite))
}

参考

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?