code: func (m *Mock) AssertCalled(t TestingT, methodName string, arguments ...interface{}) bool {
  	if h, ok := t.(tHelper); ok {
  		h.Helper()
  	}
  	m.mutex.Lock()
  	defer m.mutex.Unlock()
  	if !m.methodWasCalled(methodName, arguments) {
  		var calledWithArgs []string
  		for _, call := range m.calls() {
  			calledWithArgs = append(calledWithArgs, fmt.Sprintf("%v", call.Arguments))
  		}
  		if len(calledWithArgs) == 0 {
  			return assert.Fail(t, "Should have called with given arguments",
  				fmt.Sprintf("Expected %q to have been called with:\n%v\nbut no actual calls happened", methodName, arguments))
  		}
  		return assert.Fail(t, "Should have called with given arguments",
  			fmt.Sprintf("Expected %q to have been called with:\n%v\nbut actual calls were:\n        %v", methodName, arguments, strings.Join(calledWithArgs, "\n")))
  	}
  	return true
  }
docs: // AssertCalled asserts that the method was called.
  // It can produce a false result when an argument is a pointer type and the underlying value changed after calling the mocked method.