用新的编程语言实现xunit

时间:2008-10-22 09:21:02

标签: unit-testing language-agnostic xunit

我们中的一些人仍然“生活”在尚未接受单元测试的编程环境中。首先,明显的第一步是尝试为单元测试实现一个合适的框架,我猜xUnit是“标准”。

那么在新的编程语言中实现xUnit的好起点是什么?

BTW,因为人们在问:我的目标环境是Visual Dataflex。

5 个答案:

答案 0 :(得分:2)

它是哪种语言 - place already中有不少。

答案 1 :(得分:2)

如果这使您无法开始编写单元测试,那么可以在没有测试框架的情况下开始。

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中的一些位分解到你自己的框架中。

答案 2 :(得分:1)

我建议一个好的起点是在其他几种语言中使用xunit来了解这种单元测试框架的工作原理。然后,您需要深入了解行为,并开始研究如何以适合您的新语言的方式重新创建该行为。

答案 3 :(得分:1)

我在VFP中创建了一个不错的单元测试框架,它基于David Astels在Test Driven Development: A Practical Guide中的代码。通过阅读示例,理解技术并将Java代码翻译成您的语言,您将获得很长的路要走。

答案 4 :(得分:1)

我发现Pragmatic Unit Testing in C# with NUnit非常有帮助!