我们中的一些人仍然"生活"在一个尚未接受单元测试的编程环境中。首先,显而易见的第一步是尝试实现一个不错的单元测试框架,我想xUnit是"标准"。
那么,用一种新的编程语言实现xUnit的一个好的起点是什么呢?
顺便说一句,因为人们都在问:我的目标环境是Visual Dataflex。
它适用于哪种语言-已经有很多了。
如果这让你无法开始编写单元测试,那么你可以在没有测试框架的情况下开始。
C风格语言示例:
void Main()
{
var algorithmToTest = MyUniversalQuestionSolver();
var question = Answer to { Life, Universe && Everything };
var actual = algorithmToTest(question);
var expected = 42;
if (actual != expected) Error();
// ... add a bunch of tests
}
Cobol风格语言示例:
MAIN.
COMPUTE EXPECTED_ANSWER = 42
SOLVE ANSWER_TO_EVERYTHING GIVING ACTUAL_ANSWER
SUBTRACT ACTUAL_ANSWER FROM EXPECTED_ANSWER GIVING DIFFERENCE
IF DIFFERENCE NOT.EQ 0 THEN
DISPLAY "ERROR!"
END-IF
* ... add a bunch of tests
STOP RUN
在完成对代码的更改(可能还有编译)后运行Main。每当有人向您的存储库提交代码时,请在服务器上运行main。
当你迷上了,多找一个框架,或者看看你是否可以把Main中的一些部分考虑到你自己的框架中。
我建议一个好的起点是在其他几种语言上使用xunit,以了解这种风格的单元测试框架是如何工作的。然后,你需要深入研究这种行为,并开始研究如何以适合你新语言的方式重现这种行为。
我根据David Astels的《测试驱动开发:实用指南》中的代码,在VFP中创建了一个不错的单元测试框架。通过阅读示例、理解技术并将Java代码翻译成您的语言,您将有很长的路要走。
我发现使用NUnit在C#中进行实用单元测试非常有用!