diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/go/testing%2Fquick%2Findex.html | |
new repository
Diffstat (limited to 'devdocs/go/testing%2Fquick%2Findex.html')
| -rw-r--r-- | devdocs/go/testing%2Fquick%2Findex.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/devdocs/go/testing%2Fquick%2Findex.html b/devdocs/go/testing%2Fquick%2Findex.html new file mode 100644 index 00000000..d7c9f316 --- /dev/null +++ b/devdocs/go/testing%2Fquick%2Findex.html @@ -0,0 +1,74 @@ +<h1> Package quick </h1> <ul id="short-nav"> +<li><code>import "testing/quick"</code></li> +<li><a href="#pkg-overview" class="overviewLink">Overview</a></li> +<li><a href="#pkg-index" class="indexLink">Index</a></li> +</ul> <h2 id="pkg-overview">Overview </h2> <p>Package quick implements utility functions to help with black box testing. </p> +<p>The testing/quick package is frozen and is not accepting new features. </p> <h2 id="pkg-index">Index </h2> <ul id="manual-nav"> +<li><a href="#Check">func Check(f any, config *Config) error</a></li> +<li><a href="#CheckEqual">func CheckEqual(f, g any, config *Config) error</a></li> +<li><a href="#Value">func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool)</a></li> +<li><a href="#CheckEqualError">type CheckEqualError</a></li> +<li> <a href="#CheckEqualError.Error">func (s *CheckEqualError) Error() string</a> +</li> +<li><a href="#CheckError">type CheckError</a></li> +<li> <a href="#CheckError.Error">func (s *CheckError) Error() string</a> +</li> +<li><a href="#Config">type Config</a></li> +<li><a href="#Generator">type Generator</a></li> +<li><a href="#SetupError">type SetupError</a></li> +<li> <a href="#SetupError.Error">func (s SetupError) Error() string</a> +</li> +</ul> <h3>Package files</h3> <p> <span>quick.go</span> </p> <h2 id="Check">func <span>Check</span> </h2> <pre data-language="go">func Check(f any, config *Config) error</pre> <p>Check looks for an input to f, any function that returns bool, such that f returns false. It calls f repeatedly, with arbitrary values for each argument. If f returns false on a given input, Check returns that input as a *<a href="#CheckError">CheckError</a>. For example: </p> +<pre data-language="go">func TestOddMultipleOfThree(t *testing.T) { + f := func(x int) bool { + y := OddMultipleOfThree(x) + return y%2 == 1 && y%3 == 0 + } + if err := quick.Check(f, nil); err != nil { + t.Error(err) + } +} +</pre> <h2 id="CheckEqual">func <span>CheckEqual</span> </h2> <pre data-language="go">func CheckEqual(f, g any, config *Config) error</pre> <p>CheckEqual looks for an input on which f and g return different results. It calls f and g repeatedly with arbitrary values for each argument. If f and g return different answers, CheckEqual returns a *<a href="#CheckEqualError">CheckEqualError</a> describing the input and the outputs. </p> +<h2 id="Value">func <span>Value</span> </h2> <pre data-language="go">func Value(t reflect.Type, rand *rand.Rand) (value reflect.Value, ok bool)</pre> <p>Value returns an arbitrary value of the given type. If the type implements the <a href="#Generator">Generator</a> interface, that will be used. Note: To create arbitrary values for structs, all the fields must be exported. </p> +<h2 id="CheckEqualError">type <span>CheckEqualError</span> </h2> <p>A CheckEqualError is the result <a href="#CheckEqual">CheckEqual</a> finding an error. </p> +<pre data-language="go">type CheckEqualError struct { + CheckError + Out1 []any + Out2 []any +} +</pre> <h3 id="CheckEqualError.Error">func (*CheckEqualError) <span>Error</span> </h3> <pre data-language="go">func (s *CheckEqualError) Error() string</pre> <h2 id="CheckError">type <span>CheckError</span> </h2> <p>A CheckError is the result of Check finding an error. </p> +<pre data-language="go">type CheckError struct { + Count int + In []any +} +</pre> <h3 id="CheckError.Error">func (*CheckError) <span>Error</span> </h3> <pre data-language="go">func (s *CheckError) Error() string</pre> <h2 id="Config">type <span>Config</span> </h2> <p>A Config structure contains options for running a test. </p> +<pre data-language="go">type Config struct { + // MaxCount sets the maximum number of iterations. + // If zero, MaxCountScale is used. + MaxCount int + // MaxCountScale is a non-negative scale factor applied to the + // default maximum. + // A count of zero implies the default, which is usually 100 + // but can be set by the -quickchecks flag. + MaxCountScale float64 + // Rand specifies a source of random numbers. + // If nil, a default pseudo-random source will be used. + Rand *rand.Rand + // Values specifies a function to generate a slice of + // arbitrary reflect.Values that are congruent with the + // arguments to the function being tested. + // If nil, the top-level Value function is used to generate them. + Values func([]reflect.Value, *rand.Rand) +} +</pre> <h2 id="Generator">type <span>Generator</span> </h2> <p>A Generator can generate random values of its own type. </p> +<pre data-language="go">type Generator interface { + // Generate returns a random instance of the type on which it is a + // method using the size as a size hint. + Generate(rand *rand.Rand, size int) reflect.Value +}</pre> <h2 id="SetupError">type <span>SetupError</span> </h2> <p>A SetupError is the result of an error in the way that check is being used, independent of the functions being tested. </p> +<pre data-language="go">type SetupError string</pre> <h3 id="SetupError.Error">func (SetupError) <span>Error</span> </h3> <pre data-language="go">func (s SetupError) Error() string</pre><div class="_attribution"> + <p class="_attribution-p"> + © Google, Inc.<br>Licensed under the Creative Commons Attribution License 3.0.<br> + <a href="http://golang.org/pkg/testing/quick/" class="_attribution-link">http://golang.org/pkg/testing/quick/</a> + </p> +</div> |
