Я пытался протестировать свои цепные коды, используя прокладки "MockStub", чтобы выполнить проверку моего цепного кода, и натолкнулся на проблему.
Root
|
Some folder
|
chaincode
├── chaincode1
│ ├── chaincode1.go
│ ├── chaincode1_test.go
│
└── chaincode2
├── chaincode2.go
├── chaincode2_test.go
|
Other folders
Предположим, что вышеупомянутая иерархия, когда я запускаю MockInvoke в chaincode1, и некоторые его значения передаются другой функции для выполнения некоторых задач.Проблема в том, что этот цепной код использует функцию shims InvokeChaincode
и вызывает другой цепной код (например, chaincode2
).В любом случае я могу передать MockPeerChaincode
вместе с MockInvoke, чтобы решить эту проблему или каким-либо другим способом?
Chaincode-1
func Insert(stub shim.ChaincodeStubInterface, args []string) pb.Response{
//Add to blockchain but create an account
....
makeAccount(stub,AccountIDhash,AccountBalance)
....
}
func makeAccount(stub shim.ChaincodeStubInterface, accountID string, amount string){
.....
//function includes converting the accountID and ammount to chaincode arguments
//this method invokes the secondchaincode(chaincode2)
response := stub.InvokeChaincode("chaincode2", chaincodearguments, "mychannel")
if response.Status != shim.OK {
return shim.Error("chaincode1: " + "Unable to create new account from chaincode")
}
return shim.Success([]byte("chaincode1: " + "created new account from chaincode"))
}
....other methods in Chaincode1