refactor tests to make them more readable

this splits TestValues_types into multiple test functions focused on
different types of values.  Also, instead of testing multiples types at
a time by having a single large struct with lots of different fields,
this switches to testing lots of small structs with a single field.
This does result in longer code in some cases (specifically slices and
arrays, which tend to span multiple lines), but it makes the individual
cases much easier to read, since the input and expected output are
directly next to each other.

More cleanup to come; this just focused on the TestValues_types func.
3 files changed
tree: b69482d3028f8c95b0b4c17f34f4c60660077b17
  1. .github/
  2. query/
  3. .gitignore
  4. .golangci.yml
  5. CONTRIBUTING.md
  6. go.mod
  7. go.sum
  8. LICENSE
  9. README.md
README.md

go-querystring

GoDoc Test Status Test Coverage

go-querystring is Go library for encoding structs into URL query parameters.

Usage

import "github.com/google/go-querystring/query"

go-querystring is designed to assist in scenarios where you want to construct a URL using a struct that represents the URL query parameters. You might do this to enforce the type safety of your parameters, for example, as is done in the go-github library.

The query package exports a single Values() function. A simple example:

type Options struct {
  Query   string `url:"q"`
  ShowAll bool   `url:"all"`
  Page    int    `url:"page"`
}

opt := Options{ "foo", true, 2 }
v, _ := query.Values(opt)
fmt.Print(v.Encode()) // will output: "q=foo&all=true&page=2"

License

This library is distributed under the BSD-style license found in the LICENSE file.