Skip to content
No description, website, or topics provided.
Go
Branch: master
Clone or download

Latest commit

Latest commit 97b7198 Jun 12, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
model Initial commit Jun 11, 2020
vendor Initial commit Jun 11, 2020
.gitignore Initial commit Jun 11, 2020
CODE_OF_CONDUCT.md Initial commit Jun 11, 2020
CONTRIBUTING.md Initial commit Jun 11, 2020
LICENSE Initial commit Jun 11, 2020
NOTICE Initial commit Jun 11, 2020
README.md Tweak README Jun 12, 2020
SECURITY.md Initial commit Jun 11, 2020
depstubber.go Initial commit Jun 11, 2020
go.mod Initial commit Jun 11, 2020
go.sum Initial commit Jun 11, 2020
reflect.go Initial commit Jun 11, 2020
util.go Initial commit Jun 11, 2020
vendor.go Initial commit Jun 11, 2020

README.md

depstubber

This is a tool that generates type-correct stubs for dependencies, for use in testing. It is particularly useful for testing static analysis applications, where including library source code may be undesirable. It was written and is currently used for testing CodeQL Go.

The general usage pattern if vendoring is desired will look something like:

go install github.com/github/depstubber
go mod tidy # required to generate go.sum
# generate a vendor/module.txt for the go 1.24 vendor consistency check
depstubber -write_module_txt
depstubber -vendor github.com/my/package Type1,Type2 SomeFunc,SomeVariable

Limitations:

  • It is limited to a single package at a time.
  • There is no way to automatically stub all exports.
  • It does not generate memory-compatible types, as unexported types are skipped.
  • There is no way to automatically detect exports used in a program.
  • There is no way to specify specific methods on a type; all methods are automatically stubbed.
  • It cannot currently distinguish between type aliases. This is a limitation of the reflect package.

Please feel free to submit a pull request for any of the above, or with any other improvements. See CONTRIBUTING.md for more information.

For information about what improvements may be in progress, see issues.

To build, simply run go build with Go 1.14 or higher.

This project contains a significant amount of code copied from the GoMock project, as well as from the Go standard library. The mock code has been adapted to generate stub versions of requested exported fields instead of generating a mock implementation of an interface. The licenses for both these codebases can be found in the NOTICE file.

It is licensed under Apache-2.0. For more information, see the LICENSE file.

You can’t perform that action at this time.