gpt4 book ai didi

c# - 通过TDD创建映射函数 : Too Much Time Spent Writing Tests?

转载 作者:行者123 更新时间:2023-11-30 12:18:31 24 4
gpt4 key购买 nike

我是 TDD 的狂热爱好者,并且总是努力在编写生产代码之前编写测试,以确保我正在编写的代码的行为正确。然而,偶尔会有一些人质疑为某些类型的方法编写大量测试是否谨慎。这似乎在编写映射器类时最常出现。

public class FooBarMapper
{
public Foo MapToFoo(Bar bar)
{
return new Foo
{
Id = bar.Id,
Name = bar.Name,
FooYuk = bar.Beverage,
/* ... */
};
}
}

例如,假设有大约十几个属性要映射到上面。在 TDD 环境中,在编写任何映射之前,我可能会编写一个测试。类似于 MapToFooMapsBeverageToFooYuk()。测试失败,导致我编写代码使其通过。我为每个要映射的属性重复此操作。问题是:这是否让测试先行的开发走得太远了?我个人不这么认为,因为我宁愿有一套完整的测试来告诉我代码的确切作用,但我想听听社区的想法。

最佳答案

即使是 TDD 和所有 TDD 的坚定捍卫者 Bob Martin 叔叔也表示,您不必为每个琐碎的属性编写单元测试(琐碎的属性被定义为仅获取和设置成员变量的属性).

如果您编写了一个有副作用的属性(我怀疑您会这样做),然后您可以向它添加一个单元测试。正如 DuffyMo 指出的那样,如果功能测试涵盖了您的属性,则不需要进行单元测试,因为没有规范您使用单元测试定义的功能,除了简单的 get/设置。

关于c# - 通过TDD创建映射函数 : Too Much Time Spent Writing Tests?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2078321/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com