在我的工作中,我经常在开发用VB.NET编写的项目和C#之间切换。我是单位测试的新手,我一直在研究和做一些关于如何实现它的教程,但我能找到的所有东西都是用C#编写的(没有vb.net的例子) )。我使用Visual Studio 2017,因此我使用msTest进行单元测试。
在大多数情况下,我已经能够找出使用msTest进行C#和vb.net单元测试之间的语法差异,但是有一个我无法理解的功能。 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#,它将按预期运行。但是,当我构建项目时,我得到以下错误:
输入&#39; DataTestMethod&#39;没有定义。
&#39;的DataRow&#39;不能用作属性,因为它不会继承自System.Attribute&#39;。
答案 0 :(得分:0)
在线有多种服务可用于转换代码。
例如
<DataTestMethod> _
<DataRow(1)> _
<DataRow(2)> _
<DataRow(3)> _
Public Sub unitTest(n As Integer)
' Test code here
End Sub
'=======================================================
'Service provided by Telerik (www.telerik.com)
'Conversion powered by NRefactory.
'Twitter: @telerik
'Facebook: facebook.com/telerik
'=======================================================