【问题标题】:Can I use C# for doing unit testing on VB code?我可以使用 C# 对 VB 代码进行单元测试吗?
【发布时间】:2019-08-25 04:40:53
【问题描述】:

我已经使用带有 Java 程序的 JUnit 进行了一些单元测试,而且我是 .NET 单元测试领域的新手。不过,我敢肯定它不会有那么大的不同。

在工作中,我们有一个遗留的 VB .NET 代码库,正在进行零单元测试。我想开始为这个东西添加一些单元测试,我在 Visual Studio 中看到了使用 C# 进行单元测试的选项。

我的问题是,我什至可以使用 C# 来测试 VB 代码吗?我肯定想借此机会使用 C# 而不是更多的 VB。我在网上的其他任何地方都找不到这个问题,有趣的是,我希望得到一些见解。似乎我在问一个愚蠢的问题,但我希望得到一个有助于我理解这一点的答案,尤其是关于为什么这是一个愚蠢的问题,如果是的话。

【问题讨论】:

  • 看不出这不起作用的原因,但是......我不确定这是个好主意。在编写测试时让人们在语言之间切换上下文是您不需要的额外认知负担。
  • 是的,VB.NET 和 C# 可以无缝地协同工作。您甚至可以使用 C# 和 F#,但在这种情况下,您会遇到一些问题,因为它们通常使用完全不同的集合类。
  • 不明白为什么用户对此如此苛刻,我想在我花时间之前问一下,我不认为这很疯狂。 Sheesh.. 感谢提供一些有用信息的人,不胜感激
  • 想要更加精通 C# 并没有错,但是通过随意使用不同的语言编写生产代码来测试 VB 项目似乎不是一个好主意。我认为您最好使用 VB 测试项目并做一些其他事情来锻炼您的 C# 技能。

标签: c# .net vb.net unit-testing


【解决方案1】:

欢迎使用 .Net

所以简短的回答是肯定的。你可以有一个新的单元/集成测试项目,它可以是 C#,它可以有效地测试用任何其他 .Net 兼容语言编写的代码。

那么它是如何工作的呢?

.Net 是多语言框架。 VB 和 C# 只是流行的。一旦使用任何 .Net 兼容语言编写代码,它就会被编译成 IL 代码,这有点类似于 java 中的字节码并打包在 DLL 文件中。

因此,一旦构建了 dll,任何使用任何 .Net 投诉语言的项目都可以引用它。

那么你会怎么做呢?

  1. 使用任何单元测试框架模板(例如 nunit、mstest、xunit)创建另一个用于单元/集成测试的项目(进行一些分析并选择你的)
  2. 在 C# 测试项目中引用您的 VB 项目,以便您可以从 VB 代码访问类。
  3. 使用一些教程如何根据您选择的测试框架编写测试用例。

【讨论】:

  • 非常感谢您的完整回答!我想我会坚持使用 VB,只是为了保持一致性。
猜你喜欢
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多