D中的TDD功能设计

TDD function design in D

在进行测试驱动开发时,我经常发现对有意测试失败的函数进行脚手架很有用,然后填写函数的详细信息以实现单元测试 "pass"。

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

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

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

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

一般我用assert(false)。我也看到其他人也使用过它。您还可以添加留言 assert (false, "Unimplemented")

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

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

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