在我的工作中,我经常在使用VB.NET和C#编写的项目之间切换。我对单元测试相当陌生,并且一直在研究并做一些关于如何实现它的教程,但是我所能找到的所有东西都是用C#编写的(没有vb.net示例)。我使用Visual Studio 2017,所以我使用msTest进行单元测试。带参数的VB.NET单元测试
对于大多数情况下,我已经能够找出C#和VB.NET单元测试与msTest之间的语法差异,但有一个功能,我似乎无法在VB.NET中找出。在C#中,您可以这样做:
[DataTestMethod]
[DataRow(1)]
[DataRow(2)]
[DataRow(3)]
public void unitTest(int n) {
// Test code here
}
这允许您为多个值运行相同的测试。我无法找到vb.net的等效语法。甚至有一种方法可以在vb.net中做到这一点?
在此先感谢!
编辑: 这里是我的单元测试类是如何设置和什么我希望能实现:
Imports System
Imports Microsoft.VisualStudio.TestTools.UnitTesting
<TextClass()> Public Class MyUnitTests
<DataTestMethod()> _
<DataRow(1)> _
<DataRow(2)> _
<DataRow(3)> _
Public Sub IsValueLessThanTwo(ByVal n as Integer)
Assert.IsTrue(n < 2, $"{n} is not less than 2")
End Sub
End Class
我希望这个测试运行3次,并通过当值1但当值为2或3时会失败。如果我将其转换为C#,则按预期运行。但事实是,当我构建项目时,出现以下错误:
未定义类型'DataTestMethod'。
'DataRow'不能用作属性,因为它不能从'System.Attribute'继承。
你基本上是要求我们的C#转换为VB.net? – Nkosi
不,我想知道在VB.NET中可以做什么,我正在用上面的C#代码做什么。简单地将方括号改为尖括号不起作用,因为VB.NET不能识别或作为有效的属性。 –
starx207
因为您可能缺少参考资料(进口)。这只是一个语法问题。你可以在VB.net中做同样的事情,就像你在C#中做的一样。因此我之前的发言。所提供的答案完全基于问题中提供的稀少信息。 – Nkosi