我正在努力将尽可能多的逻辑移出自定义控件,以便它可以进行单元测试以减少手动测试负担。我遇到了一种情况,即被测方法产生复杂的结果。编写一个计算结果的测试用例将涉及将基本上是被测代码写入测试本身。如何编写需要重复测试代码的代码测试?
例如,我有一个GeometryGenerator
类,该类根据类的属性创建WPF几何。在一种配置中,生成由ArcSegment
组成的PathGeometry
。我可以根据测试参数计算弧的属性,但是这个计算与我试图测试的代码是一样的。这似乎会使测试失效;如果计算中存在缺陷,则测试中会存在缺陷,如果计算发生变化,则可能在测试中更改。
我该如何处理这种情况?我想出的唯一方法是手动计算测试用例的结果并将这些值硬编码到测试中。这是一个可以接受的方法吗(看起来像我在执行之前编写测试时所做的一样)?