我只看到两种方法:
在正常情况下,我会选择最后一个(尽管我真的不想仅仅出于测试的原因而改变界面)。但是在我的类中编写50个新方法只是为了测试真的有意义吗?在这种情况下,将字段设置为受保护的不是更好吗,因为有这么多方法,类会变得不清楚?
注意。反射是我想使用的最后一个选项,因为我不喜欢在测试时使用它:我不喜欢引用字段的文字,因为如果字段的名称发生变化,编译器不会通知我。
这些领域如何在外部行为方面表现出来?这就是你应该测试的。
听起来(目前)这些字段是只实现的。您的单元测试应该与实现无关,并且您应该测试您的单元(类)对外部操作的行为。如果没有明显的行为差异,那还有什么可测试的呢?请注意,您可以以不同的方式实现您的字段(不同的字段、地图中的条目等),并且您的测试应该不知道这一点。
如果您可以插入一个类来观察这些变化(比如说,在GUI中反映这些变化),那么您应该将其抽象到一个接口中,这样您就可以插入一个新的测试观察器。然后可以执行适当的断言(例如,它是否在字段更改时被调用?)
问题内容: 我有一个包含三个字段(所有字符串类型)的“报告”对象列表- 我有一个排序代码,就像 由于某种原因,我没有排序顺序。一个建议在字段之间放置空格,但是为什么呢? 你认为代码有什么问题吗? 问题答案: 你认为代码有什么问题吗? 是。为什么在比较它们之前将三个字段加在一起? 我可能会做这样的事情:(假设字段按照你希望对其进行排序的顺序)
Elasticsearch允许通过其“more like this”(MLT)查询搜索类似文档。我正试图更好地理解和调整查询,以便更好地找到类似的文档。 在试验它时,我发现具有多个字段的单个MLT查询的结果与具有每个字段的多个MLT查询的布尔值产生不同的结果。以下样本(截断): 具有多个字段的单个MLT查询 具有单个字段的多个MLT查询 为什么会发生这种情况? 我知道MLT查询会将单个查询中列出的
问题内容: 我有5个字段的对象: 要排序的的我写了下面。 这是在具有多个要比较的对象的对象上实现的正确方法吗? 问题答案: 您的方法可能是正确的,但是效率低下(不必要地调用equals)并且难以阅读。可以这样重写: 更好的方法是使用库方法将所有这些逻辑抽象掉,这样您就不必考虑它了。例如使用apache.commons.lang CompareToBuilder
我的目标是使用聚合框架创建一个管道来对我的数据进行分组,然后将这个管道与java驱动程序一起使用。MongoDB v4.0.3 我使用MongoDB Compass创建了以下管道(减少到重要部分): 这导致以下(生成的)Java代码: 集合中$组阶段之前的数据如下所示: $组阶段应返回以下数据结构: 问题所在 Mongo Compass按预期预览了阶段的结果,但使用java驱动程序的阶段的结果非常
我有个问题。您知道如何在不同的通用属性实现中使用相同的字段吗。 我有一个modelMapper接口,用于概括将要映射的对象类型 我还实现了此接口: 问题是,我需要在我的类中为每个映射设置一个字段,我认为这不是一个好的做法,我正在搜索是否有一种方法可以为所有类型的映射仅设置一个通用字段 有没有办法做到这一点?谢谢你们的帮助。
示例: 这两个序列必须匹配。