func createMockApp(accountSeeds []string) (sdk.Context, bank.Keeper, Keeper, []sdk.AccAddress, []crypto.PubKey, []crypto.PrivKey, sdk.Coins) {
	mApp := mock.NewApp()  
	bankKeeper := bank.NewBaseKeeper(mApp.AccountKeeper, mApp.ParamsKeeper.Subspace(bank.DefaultParamspace), bank.DefaultCodespace)
	keyChannel := sdk.NewKVStoreKey("channel")
	channelKeeper := NewKeeper(mApp.Cdc, keyChannel, bankKeeper)
	mApp.CompleteSetup(keyChannel)
	genAccFunding := sdk.Coins{sdk.NewInt64Coin("usd", 1000)}
	genAccs, addrs, pubKeys, privKeys := createTestGenAccounts(accountSeeds, genAccFunding)
	mock.SetGenesis(mApp, genAccs)
	header := abci.Header{Height: mApp.LastBlockHeight() + 1}
	mApp.BeginBlock(abci.RequestBeginBlock{Header: header})
	ctx := mApp.BaseApp.NewContext(false, abci.Header{})
	return ctx, bankKeeper, channelKeeper, addrs, pubKeys, privKeys, genAccFunding
}
Setup an example app with an in memory DB and the required keepers
Also create two accounts with 1000usd
package paychan
import (
	sdk "github.com/cosmos/cosmos-sdk/types"
	"github.com/cosmos/cosmos-sdk/x/auth"
	"github.com/cosmos/cosmos-sdk/x/bank"
	"github.com/cosmos/cosmos-sdk/x/mock"
	abci "github.com/tendermint/tendermint/abci/types"
	"github.com/tendermint/tendermint/crypto"
	"github.com/tendermint/tendermint/crypto/ed25519"
)