繁体   English   中英

单元测试中的SelectResults查询

[英]SelectResults query in Unit Tests

我需要将值分配给SelectResults并将其用于JUnit。

我可以分配StructImpl值,但不能对SelectResults这样做。

String[] FieldNames;
Object[] FieldValues;
StructImpl s1;
List<StructImpl> structImplList = new ArrayList<StructImpl>();

FieldNames = new String[] {"cpcaAttributeId", "cpcaAttributeName", "cpcmCatalogId", "cpcmCatalogDesc" };

FieldValues = new Object[] {"ATTRIBUTE_02", "LONGDESCRIPTION", "COMACTIVITY", "Company activities" };
s1 = new StructImpl(new StructTypeImpl(FieldNames),new Object[] {"ATTRIBUTE_02","LO","NGDESCRIPTION","COMACTIVITY", "Company activities"});
structImplList.add(s1);

您要测试什么?

GemFire / Geode SelectResults类型是一个接口,因此非常适合使用Mockito之类的框架进行模拟。

你可以看到在SDG测试套件本身的这个这样的例子, 在这里

如果您直接使用GemFire / Geode API来构造和执行查询(即您没有使用SDG的GemfireTemplate或SD [G]存储库抽象),那么您通常想模拟Query对象的接口,而不是行为。

通常,在使用Mocks进行单元测试时,您的应用程序应假定GemFire / Geode遵循合同(Javadoc)中的规定进行了正确的操作。 使用集成测试,可以测试活动对象和实际行为,这是公平的游戏。 当断言您的OQL查询格式正确,或者像SDG这样的框架将对象正确转换为期望的类型时,这一点很重要,在使用SD [G]存储库抽象时尤其如此。

无论如何,大多数情况下,您都会嘲笑SelectResults.<T>asList()方法,以按应用程序期望的方式返回应用程序对象。

无论如何,我不确定您的要求是什么。 因此,如果您可以与测试共享一个存储库/示例,那么也许可以使您对该主题有所了解。

如果没有,希望这能给您一些想法。

谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM