| 功能本身的单元测试相对简单,如果我们有经验,我们不需要了解更多。只有对此所需的对象的boostrapping仍然有点超载样板代码。测试首先启动内存中的Fabric网络,在其上安装业务网络,然后以默认管理员身份对其进行身份验证。因为这个Composer提供了库composer-admin,composer-client,composer-common和composer-connector-embedded。在测试设置之后,我们现在可以针对嵌入式网络编写测试用例。由于其长度,设置代码未包含在列表中,但可以在test/EngineSupplychainSpec.js中的主分支上查看和测试。 用于测试交易类型的单元测试用例通常具有类似的模式。他们使用其属性和关系重新创建交易,针对网络执行交易,然后检查所涉及的资产和参与者的数据状态。我们来看看createEngineAsset的现有测试用例。  describe(‘EngineSupplychainSpec’, () => {      // setup is done in the before and beforeEach hook    // results are the bnc (BusinessNetworkConnection), target namespace    // as well as test assets, participants and required registries    describe('createEngineAsset', () => {        it('should create an Engine by submitting a valid EngineCreation transaction', async () => {            const factory = bnc.getBusinessNetwork().getFactory()              const engineCreationTrans = factory.newTransaction(namespace, 'EngineCreation')            engineCreationTrans.data = factory.newConcept(namespace, 'EngineProperties')            engineCreationTrans.data.brand = 'Audi'            engineCreationTrans.data.model = 'Fancy engine model'            engineCreationTrans.data.horsePower = 400            engineCreationTrans.data.cubicCapacity = 4000            engineCreationTrans.data.cylindersAmount = 10              const manufacturerRegistry = await bnc.getParticipantRegistry(namespace + '.Manufacturer')            await manufacturerRegistry.addAll([])            engineCreationTrans.manufacturer = factory.newRelationship(namespace, 'Manufacturer', testManufacturer.$identifier)              await bnc.submitTransaction(engineCreationTrans)              const allEngines = await engineRegistry.getAll()            allEngines.length.should.equal(2)        })    }) }) 
 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |