cweill / gotests

Automatically generate Go test boilerplate from your source code.
Apache License 2.0
4.95k stars 345 forks source link

Potencial improvements to default tests template #98

Open matrixik opened 5 years ago

matrixik commented 5 years ago

I'm not sure if this will be interesting for this project but Dave Cheney gave nice presentation about writing tests for Go code with some improvements over default template from gotests: https://dave.cheney.net/paste/gopherchina-2019-testing-talk.pdf

Like having name in map[string]struct instead of []struct or using https://github.com/google/go-cmp Diff for better displaying what differ between outputs (instead of %v).

mekegi commented 5 years ago

@matrixik added PR for cmp.Equal and cmp.Diff in generated tests

for changing from

struct {
   name string
 ...
}

to

  map[string]struct{
 ...
}

I think it's better to create different issue for changing struct slice to map struct

frenzywang commented 5 years ago

I think if we have a complex scenario like if we have in order dependency, the map randomly maybe cause result will be unknown. and if need that map style, generated then manually modify also is easy.

skovtunenko commented 4 years ago

@matrixik I feel the same. @davecheney wrote a great article about PROs to stick with maps in table-driven tests. Now, I'm manually changing the generated output from the tool to use map[string]struct.