你使用哪种.NET语言编写单元测试?

5
过去我大多数使用C#编写单元测试,即使实际的软件开发是使用其他 .NET 语言(VB.NET、C++.NET等),但我也可以使用VB获得相同的结果。我想我之所以使用C#,仅仅是因为互联网上大多数示例都是用C#编写的。
如果您将单元测试作为 .NET 软件开发的一部分,您更偏爱使用哪种语言?您选择使用它的原因是什么?
我知道这在很大程度上取决于测试项目的语言,但我想了解的是是否有特定语言的偏好用于单元测试。
4个回答

6

你应该使用开发团队熟悉的语言。

我不认为你会选择在与项目其余部分不同的语言中编写单元测试,因为这可能会导致混淆,或要求开发人员了解两种不同的语言才能参与项目开发。

测试应遵循KISS原则。


你是否曾经在除了C#以外的语言中编写单元测试? - Dror Helper
KISS原则加1分,测试的目的是使事情更容易、更易于理解和维护。 - dove
不,我们是一个C#开发公司,因此引入除C#以外的语言进行单元测试是不合逻辑的。用VB(例如)进行测试没有任何优势,而且会妨碍未来的开发工作。 - Aaron Powell

2

C#是所有新代码库中编写的语言。我认为,这在很大程度上取决于公司首选的语言。如果可能的话,最好选择一种语言,并且测试也要用它来编写。如果只有少数人会使用C++,那么仍然应该保持更常见的语言作为测试,这样更多人才能熟练掌握。


1

我用C#编写所有的.Net应用程序/业务代码,因此在C#中编写单元测试也是很自然的选择。我认为在另一种语言中编写测试代码会在测试代码和应用程序代码之间引入不必要的分离。


那么,如果要测试VB.NET,您会用VB编写测试吗? - Dror Helper
是的,就我个人而言,我会尽量保持测试代码与应用程序代码使用相同的编程语言,以便在编写测试代码和应用程序代码之间切换时尽可能地简单。 - Erik Öjebo

1

我几乎总是使用与应用程序开发语言相同的语言编写单元测试。我没有什么特别的原因,只是觉得这是最合适的想法。虽然我可以使用多种语言进行编程,但这并不意味着接替我的人也能。

但我有一个例外。当我使用F#编码时,我经常使用C#编写单元测试。主要是因为IDE对F#单元测试的支持不太好。

第二个原因是单元测试通常不是很好的代码。有时需要一些奇怪的设置来测试边缘情况。在这种情况下,我经常发现F#类型安全性使得很难测试该场景。这可能只是我对F#缺乏经验,但我发现使用C#更容易创建这些场景。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接