【问题标题】:SelectResults query in Unit Tests单元测试中的 SelectResults 查询
【发布时间】:2019-08-01 11:31:29
【问题描述】:

我需要为 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);

【问题讨论】:

    标签: java spring resultset gemfire spring-data-gemfire


    【解决方案1】:

    你想测试什么?

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

    您可以在 SDG 测试套件本身中看到这样的示例,here

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

    一般来说,当使用 Mocks 进行单元测试时,您的应用程序应假定 GemFire/Geode 做正确的事情,如其合同 (Javadoc) 中所述。使用集成测试,使用活动对象和实际行为进行测试是公平的游戏。这在断言您的 OQL 查询格式正确等时非常重要,或者像 SDG 这样的框架正在正确地将对象转换为预期的类型,这在使用 SD[G] Repository 抽象时尤其如此。

    不管怎样,大多数时候你会模拟 SelectResults.&lt;T&gt;asList() 方法,返回应用程序所期望的应用程序对象。

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

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

    谢谢!

    【讨论】:

      猜你喜欢
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      • 2013-11-26
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      相关资源
      最近更新 更多