Сохранение состояния через тесты в GoLang - PullRequest
0 голосов
/ 14 октября 2018

Я хочу создать экземпляр объекта и обновить состояние этого объекта через несколько вызовов функций в тесте Go.

Моя основная логика выглядит так:

type User struct {
    Username string
    Persist4 map[string]string
}


func Init(username string, password string) (userdataptr *User, err error) {
    mapping2 := make(map[string]string)
    var userdata User
    userdata.Username = username
    userdata.Persist5 = mapping2
    // Marshak and store this structure 
    return &userdata, err
}


func Get(uname string, password string) (user *User, err error) {
    // Retrieve and unmarshal user into tmp
    return &temp, nil
}

func (userdata *User) StoreFile(filename string, data []byte) {
    userdata.Persist4['test'] = 'fails' // This is not available in the next call 

}

А логика тестирования выглядит так:

func TestInit(t *testing.T) {
    u, _ := Init("a", "f")

}

func TestStorage(t *testing.T) {
    u, err := GetUser("a", "f")

    u.StoreFile("file1", v)

}

func test(t *testing.T) {
    u, err := Get("a", "f")
    // u no longer has attribute persist4['test'] = 'fails'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...