在工程中遇到以下情况:
为了进行相对底层的测试,需要将中间的算法结果传递到上层,在开始实现的时候,使用的方法是,在输出结构体中添加一个成员结构体,然后将需要测试的东西都塞入这个结构体,供上层解析;
这样实现的缺点如下:
1、由于信息需要存储到数据库中的某些字段,因此我这边上传给软件层之后,他们还会进行解析存储,这样的话,我每次更新结构体之后,软件层都需要做相应的改动;
2、由于需要将更多的信息暴露给上层,因此会有很多的结构体定义,有些还会与内部已经定义的结构体重复,如果全部剪过来,那么接口文件会变得很长,如果直接包含相应 的头文件,与软件部同步的接口文件又会增多;
解决方法:
由于这个是测试时使用,流程是我这里生成,测试那边解析,然后核对
因此可以将所有的结构体信息保存在json字符串中,最终我对于软件部上传的就只有一个json字符串 ,对于增删改都会鲁棒;
另外,也不会涉及到接口过多或过长的问题,我的结构体定义就不必暴露在接口中,可以放在任何一个方便获取其他结构体定义的函数中,对其进行赋值之后,转成json字符串,然后将该字符串塞出去即可;
测试时这么做是很方便的,麻烦的地方就是json的序列化与反序列化;
实现之后会附上相应的博客;