如何在Hyperledger Composer中使用单元测试引用一系列产品

del*_*100 2 unit-testing hyperledger-fabric hyperledger-composer

我的货件中有一系列产品,但我不知道如何参考该系列产品。我正在尝试设置单元测试环境,并且需要提供测试数据。

装运模块

asset Shipment identified by shipmentId{
  o String shipmentId
  --> Product[] allProducts
  --> participant owner
}
Run Code Online (Sandbox Code Playgroud)

和单元测试

const shipment = factory.newResource(namespace, 'Shipment', '001');
shipment.allProducts = factory.newRelationship(namespace, participant, /** what to do here */ )
Run Code Online (Sandbox Code Playgroud)

或者我可以只传递一系列产品,例如:

shipment.allProducts = products
Run Code Online (Sandbox Code Playgroud)

我对此解决方案表示怀疑的原因是,我需要使用工厂newRelationship函数。如果您有任何建议,那将有所帮助。

del*_*100 5

好吧,我终于找到了解决方案。我的错误消息是:

实例org.trader.network.Shipment#001具有类型不是org.trader.network.Product []的org.trader.network.Product类型的allProducts属性。

如果要进行单元测试并将一些数据添加到引用的数组类型,请执行以下操作:

    shipment.allProducts= [factory.newRelationship(
        namespace,
        'Product',
        product.$identifier
    )];
Run Code Online (Sandbox Code Playgroud)

注意工厂周围的支架。我需要为产品建立一系列关系。

我只需要一个产品进行单元测试,但是如果您需要更多产品,只需在方括号之间添加产品的更多关系。

我通过查看随机的github存储库找到了解决方案(来源:here