I am writing a simple test, but I receive an error, and can't figure out why. Here is the code for the function:
var messages = []Message{}
func saveMessage(m Message) {
if len(messages) >= config.Conf.MessageAmount {
messages = messages[1:]
}
messages = append(messages, m)
}
And here is the code of my test:
func Test_saveMessage(t *testing.T){
m := Message{
Username: "Name",
Message: "Test message"}
saveMessage(m)
assert.Equal(t, 1, len(messages), "Expected to have 1 message")
}
Both the test and the function are in the same go package, however i receive this error:
--- FAIL: Test_saveMessage (0.00s)
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x5c6ba0]
goroutine 6 [running]:
testing.tRunner.func1.1(0x5f0fa0, 0x78e0d0)
/snap/go/6745/src/testing/testing.go:1072 +0x30d
testing.tRunner.func1(0xc000001b00)
/snap/go/6745/src/testing/testing.go:1075 +0x41a
panic(0x5f0fa0, 0x78e0d0)
/snap/go/6745/src/runtime/panic.go:969 +0x1b9
_/home/marius/interactio/chat-api/src/messenger.saveMessage(...)
/home/marius/interactio/chat-api/src/messenger/handler.go:76
_/home/marius/interactio/chat-api/src/messenger.Test_saveMessage(0xc000001b00)
/home/marius/interactio/chat-api/src/messenger/handler_test.go:24 +0x40
testing.tRunner(0xc000001b00, 0x63eda8)
/snap/go/6745/src/testing/testing.go:1123 +0xef
created by testing.(*T).Run
/snap/go/6745/src/testing/testing.go:1168 +0x2b3
exit status 2
FAIL _/home/marius/interactio/chat-api/src/messenger 0.004s
What might be the problem and how could i solve this?
Aucun commentaire:
Enregistrer un commentaire