Как ссылаться на массив продуктов с модульным тестом в Hyperledger Composer - PullRequest
2 голосов
/ 31 мая 2019

В моей поставке есть множество продуктов, но я не понимаю, как ссылаться на этот набор товаров.Я пытаюсь настроить среду модульного теста, и мне необходимо предоставить данные теста.

модуль отгрузки

asset Shipment identified by shipmentId{
  o String shipmentId
  --> Product[] allProducts
  --> participant owner
}

и юнит-тест

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

или я могу просто передать множество таких продуктов, как:

shipment.allProducts = products

Причина, по которой я сомневаюсь в этом решении, заключается в том, что мне нужно использовать фабричную функцию newRelationship.Если у вас есть предложение, это было бы полезно.

1 Ответ

5 голосов
/ 02 июня 2019

Хорошо, я наконец нашел решение.Мое сообщение об ошибке было:

Экземпляр org.trader.network.Shipment # 001 имеет свойство allProducts с типом org.trader.network.Product, которое не является производным от org.trader.network.Product []

Если вы хотите выполнить модульное тестирование и добавить некоторые данные к указанному типу массива, выполните следующие действия:

    shipment.allProducts= [factory.newRelationship(
        namespace,
        'Product',
        product.$identifier
    )];

Обратите внимание на скобки вокруг фабрики.Мне нужно было сделать массив отношений для продукта.

Мне нужен был только один продукт для моего модульного теста, но если вы хотите больше, просто добавьте больше связей продукта в скобках.

Я нашел решение, посмотрев случайное хранилище github (источник: здесь )

...