Здравствуйте. Есть файл models с таким кодом:
package api
import "encoding/json"
type Awesome struct {
Id string `json:"id"`
Message string `json:"message"`
Score float64 `json:"score"`
Confirmed bool `json:"confirmed"`
}
func NewAwesome(id string, message string, score float64, confirmed bool) *Awesome {
return &Awesome{
id,
message,
score,
confirmed,
}
}
func(a *Awesome) ToJSON() ([]byte, error) {
return json.Marshal(a)
}
Хочу сделать бенчмарк функции ToJSON. Для этого, в этой же директории есть файл models_test с таким кодом:
package api
import "testing"
func BenchmarkAwesomeToJSON(b *testing.B) {
for i := 0; i < b.N; i++ {
awesome := NewAwesome("123456789", "Total awesomeness", 9.99, true)
awesome.ToJSON()
}
}
Однако, при запуске бенчмарка (go test -bench . models_test.go ), получаю следующую ошибку:
./models_test.go:9:14: undefined: NewAwesome
Если перенести функцию в тестовый файл, то все работает. Возможно ли тестировать функции из других файлов и из других пакетов? И, если можно, то что для этого необходимо сделать?