Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/iceleaf916/my-cc-plugins --skill go-test-standards명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | go-test-standards |
| description | Golang 单元测试规范与最佳实践指南 |
| category | testing |
| tags | ["golang","go-test-standards","unit-test","ginkgo","gomega","testing"] |
| 阶段 | 说明 |
|---|---|
| Setup | 准备测试所需的数据和环境 |
| Exercise | 执行被测试的代码 |
| Verify | 验证执行结果是否符合预期 |
| Teardown | 清理测试环境和数据 |
Go 项目必须使用以下工具:
注意事项:
Ω 别名。suite_test.go。abc,则测试文件属于 abc_test 包。package db_test
import (
"fmt"
"reflect"
"testing"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
. "github.com/onsi/ginkgo/v2"
. "github.com/onsi/gomega"
dockertest "github.com/ory/dockertest/v3"
"github.com/ory/dockertest/v3/docker"
)
const (
dbName = "test"
dbPwd = "test"
)
func TestDB(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Db Test Suite", Label("repo", "store/db"))
}
var (
Db *gorm.DB
cleanupDocker func()
)
var _ = BeforeSuite(func() {
Db, cleanupDocker = setupGormWithDocker()
})
var _ = AfterSuite(func() {
cleanupDocker()
})
var _ = BeforeEach(func() {
Except(cleanDatabase(Db, dbName)).To(Succeed())
})
func setupGormWithDocker() (*gorm.DB, func()) {
pool, err := dockertest.NewPool("")
chk(err)
runDockerOpt := &dockertest.RunOptions{
Repository: "hub.deepin.com/library/mariadb",
Tag: "10.3.35",
Env: []{ + dbName, + dbPwd},
}
fnConfig := {
config.AutoRemove =
config.RestartPolicy = docker.NeverRestart()
}
resource, err := pool.RunWithOptions(runDockerOpt, fnConfig)
chk(err)
fnCleanup := {
err := resource.Close()
chk(err)
}
dsn := fmt.Sprintf(,
dbPwd,
resource.GetPort(),
dbName,
)
gdb *gorm.DB
err = pool.Retry( {
gdb, err = gorm.Open(, dsn)
err != {
err
}
gdb.DB().Ping()
})
chk(err)
gdb, fnCleanup
}
{
}
{
err != {
(err)
}
}
| 工具 | 说明 |
|---|---|
| ginkgo | Expressive BDD testing framework with Gomega matchers |
| gomega | Ginkgo's Preferred Matcher Library |
| biloba | Stable, performant, automated browser testing for Ginkgo |
| chromedp | Drive Chrome browsers via DevTools Protocol |
| 工具 | 说明 |
|---|---|
| iotest | Std Package - Readers and Writers for testing |
| httptest | Std Package - HTTP testing utilities |
| dockertest | Run integration tests with Docker containers |
| testcontainers-go | Programmatically manage Docker containers |
| 工具 | 类型 | 说明 |
|---|---|---|
| moq | Stub | Generate interface mocks for testing |
| gomonkey | Monkey | Monkey patching library for unit testing |
| mock | Mock | Go mocking framework with code generation |