我是,而且喜欢做一个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?我不这么认为,但是一种函数式语言会带来什么吗?
更简单地说,是否有有助于编写好测试的语言特性?如果是这样的话,哪种语言拥有这些最理想的功能呢?
发布于 2011-11-11 04:24:46
我想说的是,以可测试的方式编写程序比寻找有助于测试的特定语言特性更重要。如果您以方便测试的方式编写程序,您可以像在c#或Java中一样轻松地用python或clojure编写测试。
作为一名忠诚的c#开发人员,我可以告诉您,有一种结构化的、强类型的编写程序和单元测试的方法有一定的优势。但是,在一种更“直接”的语言(如python )中工作是有意义的。通过使用REPL,您可以更快地将您的想法提取为可测试的代码片段,而且从长远来看,您可能需要更少的单元测试,因为您在编写代码时一直在测试代码。
发布于 2011-11-11 09:03:42
我认为,这在很大程度上取决于您是在讨论与您自己的代码集成的测试,还是将测试作为一个单独的活动进行。这取决于你在做什么,你的团队是如何组成的,等等,但是两者的结合往往是最强大的。
用于集成测试(单元测试、集成测试、开发人员编写的可执行规范等)然后,您只需确保您的编码方式使测试变得容易-- IMHO的含义可能因语言而异,尽管有一些通用原则(松散耦合、最小化对文件系统或数据库等事物的依赖)。无论如何,您要解决的问题应该决定选择哪一个而不是测试需求。
对于外部测试(例如,由测试人员或分析人员编写的可执行规范),您可以使用与编写代码所用的语言相同的语言,但通常您需要的是更具交互性的东西。避免编译步骤并拥有REPL在这里是一个很大的胜利(例如python)。
https://softwareengineering.stackexchange.com/questions/119141
复制相似问题