首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有些语言或语言特性更适合测试吗?

有些语言或语言特性更适合测试吗?
EN

Software Engineering用户
提问于 2011-11-11 04:10:13
回答 2查看 179关注 0票数 5

我是,而且喜欢做一个VB.net编码器。我在c#中有几个很大的程序,我必须维护它们,而且我不太喜欢在开发时编写C#代码。这并不可怕,但我更喜欢用于开发的VB.net环境。

然而,最近我开始用C#编写我的所有测试。我开始这样做是为了能够使用C#中提供的所有优秀工具,比如模拟库。

但是,即使在我找到Teleriks非常有能力的VB.net免费版之后,我仍然发现我仍然用C#编写了几乎所有的测试(现在使用的是C#版本的justmock BTW)。即使我不需要这些测试工具,我也发现我更喜欢C#来编写测试。

我想我喜欢VB.net,因为我写的时候在解决问题的时候使用一般的编码,因为: 1.喜欢像XML文字这样的东西的甜蜜。另外,LINQ在VB中看起来更容易、更有表现力。2.不用担心语法(大写、行结束等)。我可以专注于我的想法。(额外的详细内容由下面的#3和coderush及其他IDE工具来处理) 3.认为Visual和VB.net (例如后台编译)与IDE的紧密集成只是次要的。(尽管C#正在变得更好。)

但对于测试,我并没有考虑大局,也没有真正解决问题。每种测试方法都是独立的,C#的简洁性只是强化和帮助了这一事实。

我一开始觉得这很令人惊讶,因为我一直认为脚本类型语言更适合编写测试。但是,在实际编写了成千上万的脚本之后,我看不到使用脚本语言有什么好处。事实上,我发现选项严格和明确是真实的(这改变了vb的脚本性质)在测试项目中甚至更有帮助。

但也许我错了,还有更适合编写测试的语言?像IronPython这样的东西对写作测试有好处吗?也许是带宏的BOO?我不这么认为,但是一种函数式语言会带来什么吗?

更简单地说,是否有有助于编写好测试的语言特性?如果是这样的话,哪种语言拥有这些最理想的功能呢?

EN

回答 2

Software Engineering用户

发布于 2011-11-11 04:24:46

我想说的是,以可测试的方式编写程序比寻找有助于测试的特定语言特性更重要。如果您以方便测试的方式编写程序,您可以像在c#或Java中一样轻松地用python或clojure编写测试。

作为一名忠诚的c#开发人员,我可以告诉您,有一种结构化的、强类型的编写程序和单元测试的方法有一定的优势。但是,在一种更“直接”的语言(如python )中工作是有意义的。通过使用REPL,您可以更快地将您的想法提取为可测试的代码片段,而且从长远来看,您可能需要更少的单元测试,因为您在编写代码时一直在测试代码。

票数 3
EN

Software Engineering用户

发布于 2011-11-11 09:03:42

我认为,这在很大程度上取决于您是在讨论与您自己的代码集成的测试,还是将测试作为一个单独的活动进行。这取决于你在做什么,你的团队是如何组成的,等等,但是两者的结合往往是最强大的。

用于集成测试(单元测试、集成测试、开发人员编写的可执行规范等)然后,您只需确保您的编码方式使测试变得容易-- IMHO的含义可能因语言而异,尽管有一些通用原则(松散耦合、最小化对文件系统或数据库等事物的依赖)。无论如何,您要解决的问题应该决定选择哪一个而不是测试需求。

对于外部测试(例如,由测试人员或分析人员编写的可执行规范),您可以使用与编写代码所用的语言相同的语言,但通常您需要的是更具交互性的东西。避免编译步骤并拥有REPL在这里是一个很大的胜利(例如python)。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/119141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档