12 关于TDD,我仍然遇到一个小问题。 我需要一种方法,该方法将从数据层(linq2SQL)中获取已过滤数据的特定记录集。请注意,我使用的是从DBML生成的linq生成的类。现在的问题是我要为此编写测试。 我是否: a)首先将记录插入测试中,然后执行方法并测试结果 b)使用数据库中可能存在的数据。不热衷于这种逻辑会导致事情破裂。 c)你有什么建议? c# unit-testing — 尼尔 source
7 (a)的变体。 有一个测试数据库或该数据库的小节可用于测试。设置测试时,请具有一个例程,可以根据需要初始化数据库以开始测试(可以根据需要在每次测试之前完成)。这可能包括删除数据,插入数据等。然后运行测试。在拆解阶段,请自己清理。可以根据需要重复多次,而不会破坏实时系统(使用其他任何数据库所需的数据进行测试不是一个好主意)。 — Yaakov Ellis source 1 好答案。我喜欢使用sqlite创建一次性数据库。如果您想测试特定于数据库实现的内容(例如触发器),那是不可能的,但是它确实允许快速,无害的设置/拆卸。 — bogeymin 1 @bogeymin-如果需要,您仍然可以设置带有触发器的测试数据库(可以在FixtureSetup期间使用脚本创建整个数据库) — Yaakov Ellis 2010年