我不知道这个问题的标准方法,但我会提供一些想法。
我通常会发现自己创建类来表示表以利用编译时检查,所以我认为这是一个很好的方法。您可能想研究 Linq-to-SQL——我认为它可以为您做很多事情。为此,我有时在 Ruby 中使用 ActiveRecord,即使在 C# 项目中也是如此,因为使用它进行开发非常快。
或者,您可能希望将测试放在文本文件中:
Command:
command to execute
Expected Data:
SELECT column FROM table;
row name, column name, expected data
row name, column name, expected data
row name, column name, expected data
Expected Data:
SELECT column FROM table;
row name, column name, expected data
row name, column name, expected data
然后编写一些代码来加载和解析文件,运行命令并比较结果。这只会排除每次测试会发生变化的事情,所以我不知道它是否会变得更好。
另一个想法是尝试将通用代码拉入基类,并将变化的代码保留在子类中。此设计遵循模板方法模式。
例子
class MyTest : CommandLineTest {
public String Command() { return "Command to execute"; }
public String DataRetrievalCommand() { return "SELECT column FROM table"; }
public DataResult[] ExpectedData() {
return [ new DataResult("column", "row", "value"), ...];
}
}
超类将使用这些方法来获取命令和值,但它会做所有实际工作。与文本文件类似的想法,但测试规范保存在代码中。
希望这会有所帮助,或者至少能让一些想法流动起来。