feat: 系统性改进后端测试体系
- 新增 6 个测试场景 (config load pipe, handler errors, service aggregation, engine degradation, openai decoder edges, negative tests) - 更新测试工具规格 (mockgen, in-memory SQLite) - 覆盖率目标从 >80% 提升至 >85% - 新增 test-unit 和 test-integration Makefile 命令 - 新增死代码清理和 mockgen 需求 - 归档变更至 openspec/changes/archive/2026-04-22-improve-backend-testing/
This commit is contained in:
71
backend/tests/mocks/mock_stats_repository.go
Normal file
71
backend/tests/mocks/mock_stats_repository.go
Normal file
@@ -0,0 +1,71 @@
|
||||
// Code generated by MockGen. DO NOT EDIT.
|
||||
// Source: stats_repo.go
|
||||
//
|
||||
// Generated by this command:
|
||||
//
|
||||
// mockgen -source=stats_repo.go -destination=../../tests/mocks/mock_stats_repository.go -package=mocks
|
||||
//
|
||||
|
||||
// Package mocks is a generated GoMock package.
|
||||
package mocks
|
||||
|
||||
import (
|
||||
domain "nex/backend/internal/domain"
|
||||
reflect "reflect"
|
||||
time "time"
|
||||
|
||||
gomock "go.uber.org/mock/gomock"
|
||||
)
|
||||
|
||||
// MockStatsRepository is a mock of StatsRepository interface.
|
||||
type MockStatsRepository struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockStatsRepositoryMockRecorder
|
||||
isgomock struct{}
|
||||
}
|
||||
|
||||
// MockStatsRepositoryMockRecorder is the mock recorder for MockStatsRepository.
|
||||
type MockStatsRepositoryMockRecorder struct {
|
||||
mock *MockStatsRepository
|
||||
}
|
||||
|
||||
// NewMockStatsRepository creates a new mock instance.
|
||||
func NewMockStatsRepository(ctrl *gomock.Controller) *MockStatsRepository {
|
||||
mock := &MockStatsRepository{ctrl: ctrl}
|
||||
mock.recorder = &MockStatsRepositoryMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||
func (m *MockStatsRepository) EXPECT() *MockStatsRepositoryMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// Query mocks base method.
|
||||
func (m *MockStatsRepository) Query(providerID, modelName string, startDate, endDate *time.Time) ([]domain.UsageStats, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Query", providerID, modelName, startDate, endDate)
|
||||
ret0, _ := ret[0].([]domain.UsageStats)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// Query indicates an expected call of Query.
|
||||
func (mr *MockStatsRepositoryMockRecorder) Query(providerID, modelName, startDate, endDate any) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Query", reflect.TypeOf((*MockStatsRepository)(nil).Query), providerID, modelName, startDate, endDate)
|
||||
}
|
||||
|
||||
// Record mocks base method.
|
||||
func (m *MockStatsRepository) Record(providerID, modelName string) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Record", providerID, modelName)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// Record indicates an expected call of Record.
|
||||
func (mr *MockStatsRepositoryMockRecorder) Record(providerID, modelName any) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Record", reflect.TypeOf((*MockStatsRepository)(nil).Record), providerID, modelName)
|
||||
}
|
||||
Reference in New Issue
Block a user