测试Java客户端的dsunit

问题描述:

我一直在编写测试来验证我的Java日志流是BigQuery。我用dsunit(golang)使用jdsunit(dsunit的Java客户端),但我有一个问题,因为为了验证BiqQuery中的流数据,我必须指定唯一标识符,我的日志没有时间标记旁边的唯一标识符(难以使用) 。测试Java客户端的dsunit

如何用dsunit测试数据而没有唯一字段?任何建议表示赞赏!

+1

请删除您周围的文字编码格式。如果您将测试代码与独特的字段一起发布,它也会有所帮助。 – kabanus

+0

这是我的datastore_init.json配置文件,其中包含唯一唯一列requestTimestamp(以毫秒为单位)的表。 {“DatastoreConfigs”:[{“Datastore”:“MyDataStore”,“AdminDbName”:“MyDataStore”,“ClearDatastore”:true,“ConfigUrl”:“test://resources/bq/config/store.json” ,“描述符”:[{“Table”:“LogHistory”,“PkColumns”:[“requestTimestamp”],“Columns”:[“eventId”,“param1”,“param2”,“requestTimestamp”], :“SELECT eventId,param1,param2,param3,requestTimestamp FROM LogHistory”}]}]} – StackTest

在你的测试案例中,我会假设一个记录器顺序地输入条目,所以你可以使用记录顺序的位置按时间戳。如果是这样,请使用以下SQL作为FromQuery来源:

SELECT 
ROW_NUMBER() OVER() position, eventId, param1, param2, param3, requestTimestamp FROM LogHistory 
ORDER BY requestTimestamp 

在您的验证数据集只需添加位置即

[ 
    {"position":1, "eventId":123,"param1":"p1.1",....,"requestTimestamp":t1 }, 
    {"position":2, "eventId":123,"param1":"p1.2",....,"requestTimestamp":t2 } 
    {"position":3, "eventId":345,"param1":"p1.1",....,"requestTimestamp":t3 } 
]