func (m *Mock) Return(returnArguments ...interface{}) *Mock {
	m.ExpectedCalls = append(m.ExpectedCalls, Call{m.onMethodName, m.onMethodArguments, returnArguments, 0, nil, nil})
	return m
}
Return finishes a description of an expectation of the method (and arguments)
specified in the most recent On method call.

Mock.On("MyMethod", arg1, arg2).Return(returnArg1, returnArg2)
package mock
import (
	"fmt"
	"github.com/stretchr/objx"
	"github.com/stretchr/testify/assert"
	"reflect"
	"runtime"
	"strings"
	"sync"
	"time"
)
type TestingT interface {
	Logf(format string, args ...interface{})
	Errorf(format string, args ...interface{})
}
type Call struct {
	Method string
	Arguments Arguments
	ReturnArguments Arguments
	Repeatability int
	WaitFor <-chan time.Time
	Run func(Arguments)
}
type Mock struct {
	onMethodName string
	onMethodArguments Arguments
	ExpectedCalls []Call
	Calls []Call
	testData objx.Map
	mutex sync.Mutex
}
func (m *Mock) TestData() objx.Map {
	if m.testData == nil {
		m.testData = make(objx.Map)
	}
	return m.testData
}
func (m *Mock) On(methodName string, arguments ...interface{}) *Mock {
	m.onMethodName = methodName
	m.onMethodArguments = arguments
	return m
}