我有一个UI5
应用程序,可以使用UI5
标准内置模拟服务器运行它进行测试。
我的oData元数据中的所有集合都具有整数类型的ID
! (在真实网关服务器中自动递增)
[有趣的部分是,当我创建集合的新对象时,它将把9
分配为第一次创建的对象的ID,而第二个创建的对象将是416
,依此类推。
清楚的是,内置模拟服务器使用不带或带有静态种子的随机生成算法。这就是为什么它将为我的元数据模型中的每个集合始终生成相同的ID链的原因。
现在我的问题是如何更改UI5模拟服务器的这种行为?
换句话说,如何将随机数设置为模拟服务器的种子,或者如何强制其对ID使用增量行为。
UI5的默认行为问题是生成9, 416, 6671, 2631, ...
作为ID,当其中一组已经具有ID为9
的项时!然后,通过创建一个新项目,我的列表中将有两个具有相同ID(即9)的项目!
看着UI5模拟服务器的source code,似乎没有一个随机的公共设定值。
但是,您仍然可以在MockServer实例上为Ints(或任何其他类型)设置种子:
oMockServer._oRandomSeed = {"Int":69190}
如果要模拟顺序ID的生成,则可以在模拟服务器完成请求处理后使用MockServer#attachAfter()更改生成的值。