【问题标题】:generate c# test method生成c#测试方法
【发布时间】:2016-05-31 15:23:36
【问题描述】:

我只是想知道,给定一个输入文件(excel、xml 等),我们可以在 c# 中生成一个单元测试代码吗?例如,我需要验证一个数据库。在输入的 excel 文件中,我将提及要设置的所有属性、要检索的所有属性、预期值等。此外,对于这些,我可以提供要运行的查询。因此,鉴于我这边有这么多输入,我可以通过一些工具或脚本或其他程序在 c# 中创建一个单元测试用例方法吗?对不起,如果这听起来很愚蠢。谢谢你的帮助。

【问题讨论】:

  • 为什么不呢?代码生成是常用的。一种可能的解决方案可能是 T4。但我和@HimBromBeere 站在同一边……

标签: c# unit-testing code-generation


【解决方案1】:

单元测试应该测试您的软件是否正确/按预期运行,而不是测试您的数据是否正确。简而言之,您应该测试将数据导入到数据库的软件。当数据已经在数据库中时,您可以编写一个验证脚本或与单元测试无关的类似内容(但是当然可以测试该脚本是否正常工作)。

但是,您应该测试您的软件提供的针对数据库运行的查询是否正确,以及它们是否按预期工作,包括任意数据和真实数据。

即使涉及代码生成,您也不想检查生成源代码的过程是否正常工作(至少在您没有编写自己的代码生成器之前)。只需假设生成器按预期工作并继续处理您自己可以处理的事情

【讨论】:

    【解决方案2】:

    前段时间我有一个类似的问题,虽然不是在单元测试的上下文中。可以从另一个文件/数据库表生成的这段代码称为Boilerplate Code

    所以如果你问这可以是否可以做到,答案是肯定的。但是,如果您想知道是否应该这样做,答案是否定的。单元测试不是理想的样板代码。它们是可变的...在捕获您之前没有考虑过的边缘情况时,您可能需要添加更多测试。

    此外,单元测试通常不仅用于测试代码,还用于推动代码开发。这种方法称为测试驱动开发(简称 TDD)。从样板测试中“推动”您的开发将是一团糟。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-11
      • 2018-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多