(二)单元测试
测试代码更好的方式是编写单元测试,实际上,真正的“测试驱动”开发会指导我们甚至在开始编码之前就编写这些代码。但这不是真正的TDD,因为:a)这些不是“真正的”单元测试(它们与真实的数据库进行交互);b)我们现在才开始编写它们。重要的是要承认我们何时知道正确的做法是什么,而我们仍然没有这样做。
FoxPro 提供了一种流行的单元测试工具FoxUnit。这是一个单独安装的程序(理想情况下是通过Thor进行的),并没有继承到IDE中。
而VisualStudio 将其完全内置在IDE中,并且您可以选择多种测试框架。我选择Nunit进行演示是因为它和FoxUnit非常相似。为了创建测试,你将基于Class Library with Nunit Testing的新项目添加到解决方案中(参见图3)。
接下来,添加对要测试的库 XSharpToDo 的引用,就像我们使用基本控制台测试应用程序时所做的那样,并编写一个测试:
代码语言:javascript复制 [Test];
METHOD getToDo ASVOIDSTRICT
VAR oToDos := XSharpToDo.XToDos{}
VAR oTodo := oToDos.getToDo("EDF53AEF-5C29-4DC4-A")
VAR cExpected := "EDF53AEF-5C29-4DC4-A"
Assert.AreEqual(cExpected, oTodo.id, "Did not get the right TODO")
RETURN
该测试现在显示在“测试资源管理器”中。当您单独或完全(Ctrl R, A)运行测试时,会清除的表明测试是通过、失败还是尚未实施。它还显示测试运行了多长时间,这是方法性能的早期指标。