wcf - 以 ADODB.Recordset 作为输入参数的 WCF 方法的单元测试

标签 wcf unit-testing vb6 adodb

我有一个 WCF 服务,它是 VB 应用程序的外观。我的 VB 应用程序需要一个 ADODB.Recordset 作为我的输入参数。 我已经为此方法编写了单元测试,但我不知道如何手动创建用于测试目的的记录集。

我想出了这个(在网上搜索了很长时间之后):

ADODB.Recordset tempRS = new ADODB.Recordset();
tempRS.Fields.Append("Field1", ADODB.DataTypeEnum.adChar);  
tempRS.Fields.Append("Field2", ADODB.DataTypeEnum.adInteger);

但是这个记录集中没有数据。或者再试一次:

ADODB.Recordset temp = new ADODB.Recordset();
temp.Open();
temp.AddNew("Field1", "data for field 1");
temp.AddNew("Field2", "1");

但我在 temp.Open() 语句中收到一条错误消息,提示 The connection cannot be used to perform this operation。它在此上下文中已关闭或无效。

有人能指出我正确的方向吗?我已经阅读了 msdn 但没有找到适合我需要的示例。

提前致谢!

最佳答案

我亲自编写了 C# 单元测试,其中我成功地实例化了一个真正的 ADODB.Recordset 并用数据填充它,所以我可以向你保证这是可能的。

关键是在断开模式下打开记录集。这为您提供了与 DataTable 等效的 ADO,并且不需要数据库连接。您可以通过将游标类型显式设置为静态来执行此操作,例如

temp.Open(CursorType: CursorTypeEnum.adOpenStatic);

注意:静态游标也可以在连接模式下使用。但是,它们是唯一在断开连接模式下有意义的游标类型,这就是您需要明确指定它的原因。

关于wcf - 以 ADODB.Recordset 作为输入参数的 WCF 方法的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092257/

相关文章:

mysql - VB6 连接到远程 mySQL 服务器挂起应用程序

WCF 客户端 - 如何处理或忽略 MustUnderstand header 元素?

c# - 如何配置 WebService 返回 ArrayList 而不是 Array?

.net - vs2008 代理?

python - 当测试在单独的文件夹中时使用 pytest

c++ - 在单独的 cpp 文件中 boost 单元测试

c# 在 WCF 方法中传递结构

unit-testing - 如何使用 mock $httpBackend 来测试错误分支

string - 获取字符串值形式的 VB6 变量名称

C# DLL 不能影响从 VB6 应用程序通过引用传递的数字的值