现在在进行流量测试时,它一直通过到合同C。但是,合同D的流量测试失败。根据日志,它正在尝试使用同一命令验证所有状态(即i / p和o / p)。
我发现了一个类似的问题:Transaction verification failed when using different type of states as input and output
但是,如果那是真的,那么我的Contract C Flow测试用例也应该失败了?
尽管如此,如答案中所述,我删除了对合同D中输入状态的验证,因此一个合同将仅验证一个状态。但是还会出现同样的错误。
有什么问题的指针吗?
答案 0 :(得分:2)
请注意:
因此,在您的情况下,如果我正确理解了您的图表:
class MyClass(object):
@classmethod
def class_method(cls):
pass
def instance_method(self):
pass
@staticmethod
def static_method():
pass
def blas(): pass
t = MyClass()
isinstance(t.__class__.__dict__[t.class_method.__name__], classmethod) # True
isinstance(t.__class__.__dict__[t.static_method.__name__], classmethod) # False
isinstance(t.__class__.__dict__[t.instance_method.__name__], classmethod) # False
isinstance(t.__class__.__dict__[t.blas.__name__], classmethod) # False
,并且通过运行StateA
(与ContractA
相关联)进行了验证StateA
,并且通过运行StateB
(与ContractB
关联)进行了验证StateB
,输出StateB
,并通过运行StateC
(与ContractB
相关联)和StateB
(与{相关联)进行验证{1}})ContractC
和StateC
,输出StateA
,并通过运行StateC
(与{{1 }}},StateD
(与ContractA
相关)和StateA
(与ContractC
相关)