【问题标题】:TDD function design in DD中的TDD功能设计
【发布时间】:2018-04-06 01:19:16
【问题描述】:

在进行测试驱动开发时,我经常发现将故意使测试失败的函数架起来很有用,然后填写函数的详细信息以实现单元测试的“通过”。

在 D 中,是否有标准方法来构建空函数,或者以其他方式处理测试驱动开发的这一方面?

例如,进入 C# 世界 NotImplementedException 将是实现此目的的一种方法:

int Foo(int x, int y) {
    throw new NotImplementedException();
}

作为 D 的新手,我可以看到有一个 base Exception class,所有异常似乎都继承自它。但是有没有更好的方法在 TDD D 环境中构建新功能?

【问题讨论】:

  • 您也可以简单地定义自己的 NotImplementedException。
  • 我会使用assert(false, "Not implemented");。它很简短,不需要特定的异常类型来涵盖这种特定情况,并且完全符合需要。

标签: tdd d


【解决方案1】:

一般我使用assert(false)。我也看到其他人也使用过这个。也可以留言assert (false, "Unimplemented")

D 的异常类型没有 C# 那么多。除非有理由在 try-catch 中捕获异常,否则它只是给人类(编码员)的消息,因此没有真正的理由为异常类型提供代码表示。

您也可以只抛出一个通用异常,但使用 assert 更方便。

(断言https://dlang.org/spec/contracts.html的文档)

【讨论】:

  • 所以我认为通用异常是可怕的,异常消息应该被认为是有害的......而D如此使用它们的原因正是核心语言和stdlib所做的方便使用。尽管如此,对于未实现的人来说,assert(0 /* or false */) 一个不错的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 2011-08-07
  • 2010-09-13
相关资源
最近更新 更多