【问题标题】:unit testing methods with arrays as argument以数组为参数的单元测试方法
【发布时间】:2011-03-04 09:42:35
【问题描述】:

我正在将一些 C++ 程序集移植到执行各种波形解调的 VB。我决定走单元测试路线,而不是构建测试应用程序来了解测试的执行方式。原始解调代码接受一个数组,该数组是波形以及其他一些参数。应该如何对具有数组作为参数的东西进行测试?在文件中生成假数据并在测试开始时将其读入是否可以接受?

附带说明 - 编写原始 C++ 代码是因为我们正在执行在 VB6 中无法完成的数学运算,因此我们必须跨越 C++ 和 VB6 之间的界限并使用数组。在 .NET 世界中是否有一种“更好”的方式来处理我们 VB6 程序员可能还不知道的大量数据?或者,如果我们没有跨越托管/非托管边界,我们是否应该将数据表示为对象?

谢谢大家!

【问题讨论】:

  • 关于第二个问题:.NET 非常有能力处理大量数据。您应该采用最可维护的设计,并在性能不够好时尝试对其进行调整。如果你卡住了,你可以在这里再次询问 SO 并显示代码并解释上下文。祝你好运。

标签: .net vb.net unit-testing


【解决方案1】:

取决于测试数组的大小。如果它们不是那么那么大,我宁愿将它们保留在代码中 - 这样单元测试是自包含的,不依赖于外部资源。

但是,如果数组很大,则可以将其存储在假数据文件中。或者,如果生成不是很复杂或耗时,它甚至可以在运行中生成。

即使您决定重构您的 API,我还是建议您先为当前 API 编写单元测试。完成测试后,您可以更安全地进行重构。

【讨论】:

    【解决方案2】:

    首先要摆脱数组。您在问题中说,数组的唯一原因是 C++ 的接口。现在你的代码是 vb.net 所以清理那个界面。您最初可能会从包装数组的东西开始:class WaveForm {}隐藏代表性细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 2022-07-02
      • 2013-08-28
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      相关资源
      最近更新 更多