在 Go 中,我将如何测试是否以正确的方式调用了模拟依赖项。
如果我有一个接受依赖接口的结构,注入后我希望能够测试原始模拟对象是否已被调用。
我在这个例子中的当前代码我看不到结构值已经改变。如果我更改我的代码以通过引用传递它会触发错误:
s.simpleInterface.Call 未定义(类型 *SimpleInterface 是指向接口的指针,而不是接口)
type SimpleInterface interface {
Call()
}
type Simple struct {
simpleInterface SimpleInterface
}
func (s Simple) CallInterface() {
s.simpleInterface.Call()
}
type MockSimple struct {
hasBeenCalled bool
}
func (ms MockSimple) Call() {
ms.hasBeenCalled = true
}
func TestMockCalled(t *testing.T) {
ms := MockSimple{}
s := Simple{
simpleInterface: ms,
}
s.CallInterface()
if ms.hasBeenCalled != true {
t.Error("Interface has not been called")
}
}
慕虎7371278
相关分类