agiledragon / agiledragon/gomonkey

请问如何实现一个通用的Mock函数?

オープン
#109 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Go
スター
2.3k
フォーク
192
平均マージ
1日 6時間
マージ済み PR(30日)
1

説明

在做单元测试的情况下, 会有一种需求是, 确定调用了某个函数,或者某个接口, 其它的mock框架基本都提供这种能力, gomonkey也可以, 但是需要一个一个的模拟, 有没有可能通过1.18的泛型, 写一个类似这样的Func结构
type Func[T any] struct {
callCount int
}
然后有这样的方法 MockFunc[T any](ps *Patches, f T) *Func[T]

那么对于只需要知道方法有没有调用的情况下, 就可以直接用这个通用的Mock结构, 甚至更进一步, 在Func中还可以存储调用的入参, 在单测中就可以精确的知道入参了.

我尝试着实现了一下我的想法, 但是由于我对反射理解有些欠缺, 所以没能完成这个, 你觉得这个想法能实现吗?
如果可以,能否做为feature加到gomonkey中?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。