String() 类型的值无法转换为 ArrayList

用户3687828

我正在尝试自动测试一些代码,但似乎无法在 ListObject 上运行。

如果我运行测试,它会失败并显示错误:

String() 类型的值无法转换为 ArrayList。

这是我正在尝试的:

C#代码:

public string[] GetUserIdsFromPassId(string organisationId, string @PassId)
    {
        DbParameterCollection parameters = new DbParameterCollection();
        parameters.Add(new DbParameter("@OrganisationId", SqlDbType.NVarChar, organisationId));
        parameters.Add(new DbParameter("@PassId", SqlDbType.NVarChar, @PassId));

        string sql = "SELECT UserId FROM Orchestra WHERE OrganisationId=@OrganisationId AND PassId=@PassId";

        ListObject list = new ListObject(_Accessor);
        list.Read(sql, parameters);

        List<string> userIds = new List<string>();
        foreach (DataRow dataRow in list.Table.Rows)
            userIds.Add(dataRow["UserId"].ToString());

        return userIds.ToArray();
    }

自动测试代码:

<TestClass()> Public Class Check_UserIdsFromPassId
    <TestMethod()> Public Sub GetUserIdsFromPassId()

        Dim organisationId As String = "1123"
        Dim PassId As String = "8110004"

        Dim UserId As string = String.Empty

        Dim ExpUserId As String = "00044"

        Dim DataServer As New DataServer()
        Dim Accessor = DataServer.GetAccessor()
        Dim _StandardHeader = New StandardHeader
        Dim _AuditProvider = New Audit.AuditProvider(_StandardHeader)
        Dim AD As New Ceridian.Administration.Authentication.AuthenticationData(Accessor, _AuditProvider)
        UserId = AD.GetUserIdsFromPassId(organisationId, PassId)
        Assert.AreEqual(ExpUserId, UserId)
        Console.WriteLine(ExpUserId)
        Console.WriteLine(UserId)

    End Sub
End Class
鸭子

如果您希望被测函数返回一个带有单个 UserId (ExpUserId) 的字符串数组,您可以只测试数组的长度和第一个值。

例如,删除这一行:

Dim UserId As string = String.Empty

将执行被测函数的行更改为:

Dim UserId = AD.GetUserIdsFromPassId(organisationId, PassId)

然后确认返回的数组有一个正确的值:

Assert.AreEqual(1, UserId.Count)
Assert.AreEqual(ExpUserId, UserId(0))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

类型不匹配:无法从 List<String> 转换为 ArrayList<String>

类型不匹配:在Tomcat 7中无法从ArrayList <?>转换为ArrayList <String>

ArrayList <String>转换为CharSequence []

无法将类型为'String'的值转换为'Binding <String>'

ArrayList<String> 不能转换为 String[]

将ArrayList <String>强制转换为String []

在Java中将'ArrayList <String>转换为'String []'

将ArrayList <String>转换为String []

将ArrayList <String>转换为String []数组

将Array <String>转换为ArrayList <String>

将ArrayList <String []>转换为String [] []或Object [] []

无法将 HashMap 类型的值转换为 String

如何将 ArrayList<String> 中的所有值相加或转换为 ArrayList<Integer>

将ArrayList <String>转换为int []

将byte []转换为ArrayList <String>

将ArrayList <String>转换为byte []

将枚举的ArrayList转换为String

在Groovy中将String转换为arrayList

将ArrayList转换为List <string []>

将List <ArrayList>转换为String []

将 ArrayList 中的对象转换为 String

无法将类型[[String:String?]'的值转换为预期的参数类型'[String:AnyObject?]'

无法将“[String : String?]”类型的值转换为预期的参数类型“String”

如何将ArrayList <Object>转换为ArrayList <String>?

无法处理参数“机器”上的参数转换。无法将值转换为 System.String 类型

'String' 类型的值不能转换为 'String()'

无法将类型“ Array [String]”的值转换为预期的参数类型“ Set <String>”

无法将“[String : Any]”类型的值转换为预期的参数类型“String”

无法将类型'((key:String,value:AnyObject)')的值转换为预期的参数类型'[String:AnyObject]'