如何在SAP Hybris中模拟模型对象?
在SAP Hybris中编写集成测试时,我遇到了一些异常,这意味着在测试用例期间模型对象不可用 在初始化过程中正常运行的ImpEx似乎不在这里运行。它正在使用模型服务创建对象如何在SAP Hybris中模拟模型对象?,hybris,Hybris,在SAP Hybris中编写集成测试时,我遇到了一些异常,这意味着在测试用例期间模型对象不可用 在初始化过程中正常运行的ImpEx似乎不在这里运行。它正在使用模型服务创建对象 是否有其他方法?我在产品中定义的自定义对象(如ABCProduct extending product)以及它们的值如何?是否也可以模拟它们?BaseSite和PriceRow如何?关于测试系统,您需要了解一些事情 租户 通常您与主租户一起工作。但是,测试系统有自己的租户,名为junit。租户有点像运行相同代码的hybri
是否有其他方法?我在产品中定义的自定义对象(如ABCProduct extending product)以及它们的值如何?是否也可以模拟它们?BaseSite和PriceRow如何?关于测试系统,您需要了解一些事情 租户 通常您与
主租户一起工作。但是,测试系统有自己的租户,名为junit
。租户有点像运行相同代码的hybris服务器的单独数据集。这样,您可以在同一基础设施上运行不同的店铺,但每个店铺只能访问针对租户的数据。它是如何工作的?每个租户都有一个表前缀,只有租户master
有一个空前缀。因此,主租户的products
表称为“products”,而junit租户的“products”表称为“junit\u products”
进一步阅读:
初始化
使用ant initialize
或管理控制台进行初始化时,通常只初始化主租户。当您想要初始化junit租户时,您需要在管理控制台中更改为junit租户,或者运行antinitialize-dtenat=junit
。但是,这只会创建最基本的数据
有关如何在管理控制台中“执行测试”部分中执行初始化的更多信息:
创建测试数据
有几个类可以继承来创建集成测试,但只有ServicelayerTest提供了创建示例数据的方法。所有这些方法都导入位于/hybris/bin/platform/ext/core/resources/servicelayer/test/
createCoreData()
创建语言、货币、单位等。请参阅:testBasics.csv
createDefaultCatalog()
使用在线目录版本和基本样本产品创建样本产品目录。请参阅:testCatalog.csv
createHardwareCatalog()
创建一个包含分阶段和在线版本、产品和分类的示例产品目录。请参见testHwcatalog.csv
和testClassification.csv
createDefaultUsers()
创建带有地址等的示例客户。请参阅testUser.csv
导入自定义数据
要导入ServicelayerTest方法未涵盖的数据,我推荐两种方法之一
使用ModelService
和其他服务创建数据。例如,您可以使用OrderService
创建示例订单。您还可以创建实用程序类,为您提供创建示例数据的功能。您可以通过使用@Resource
注释对所需的每项服务进行注释来连接李>
使用impex文件创建所需的所有数据。您可以将这些文件拆分为不同的文件,以满足不同的需求(例如,客户、订单、产品…)。ServicelayerTest
中的方法importsv(字符串路径文件,字符串编码)
为您提供了导入这些文件的机会李>