对于ResultSet中的结构比较模糊,想要直接Mock出结果并直接set进自定义的property,希望能有老师解答。
可以看一下 ResultSet的实现
谢谢老师答疑,我想再请问一下:
我理解执行nGQL获取的ResultSet是以二维表形式展示的,解析ResultSet的过程是通过这个类提供有关行或者列的方法。那反过来比如我想mock查询某个顶点的结果,应该只需要mock列名和一行具体有关顶点的值。列名我理解应该对应ResultSet中的colmnName。具体值是存在ResultSet.Record里,解析的时候通常使用可迭代对象ValueWrapper,那反过来Mock值的时候是需要new valueWrapper再一步步构建出Record。
不知道这个理解是否可行。
是的
感谢答疑,方便的话我还有进一步的疑问:
mock值的时候我的步骤是 Value->ValueWrapper->Record->ResultSet,ResultSet的构造方法里传入了colNames(列),row(行),row的构造方法里又要传入具体的Value,所以转了一圈对于值的mock还是构建对应的Value。
在Value这个类里存在很多set方法,并且拥有很多的field,其中有个setFieldValue(int fieldId, Object obj)方法,我想请教一下这些field是不是对应具体的列,比如setFieldValue(1, something)就是代表指定某一行第一列的值为something,如果有误的话应该怎么理解,谢谢。
Value 只是一个对象,里面可以存放各种类型, Node,Edge,Int,Path,List… 直需要将 生成好的对象放入Value中即可。
我没在Value中找到 setFieldValue 函数啊
那请问如果我需要mock值的话,需要如何入手呢
可以参考一下 测试用例
感谢解惑