0
は私がBoom
をスタブアウトし、それが正しいパラメータで呼び出されたことを確認するにはどうすればよいGolangのインポート関数をテストしていますか?
package main
import "foobar"
func moo() {
foobar.Boom("!")
}
func main() {
moo()
}
main.go
を持っていると言いますか?
は私がBoom
をスタブアウトし、それが正しいパラメータで呼び出されたことを確認するにはどうすればよいGolangのインポート関数をテストしていますか?
package main
import "foobar"
func moo() {
foobar.Boom("!")
}
func main() {
moo()
}
main.go
を持っていると言いますか?
Go-wayはインターフェイスを使用することです。 foobarパッケージを変更できない場合でも
1)foobarに
と変数を追加)がfunc moo(b Boomer) {
b.Boom("!")
}
3ブーマーを受け入れること)ブーマーインタフェース
type Boomer interface{
Boom(string)
}
2)変更MOOを(作成
私は以下のコンディションを使用します構築する。しかし、にexternパッケージにあなたの代わりにあなたがした後、テストブーマー
type testboomer struct{
boomstring string
}
func (tb *testboomer) Boom(s string) {
tb.boomstring = s
}
を実装、テスト内部のprintln
type foobar struct{}
func (fb foobar) Boom(s string) {
fmt.Println(s)
}
var f Boomer = foobar{}
https://play.golang.org/p/200WIok1pL
4)の)foobar.Boomを(使用することができますmoo()関数と呼ばれるtestboomer.boomstringは値を表示します。
あなたは 'func moo(boom func()、s string)のような依存関係を渡すべきです' https://play.golang.org/p/CV14zqZvOkを見てください – Plato