我正在编写一个specflow来测试服务。我正在读表并将键值存储在哈希表中。
以下是功能文件的示例:
|Index|Id | Message|
|test1|1 | aa|
|test2|2 | bb |
以下是我从表格中读取数据的方法
public Hashtable GetData(Table table)
{
var data = table.CreateSet<SpecFlowData>();
var hashtable = new Hashtable();
foreach (var currentRow in data)
{
var key = currentRow.Index;
var value = GetValues(currentRow);
hashtable.Add(key, value);
}
return hashtable;
}
这里我试图在哈希表中提取密钥和值对
[When(@"the test data is submitted to service")]
public void WhenTheTestDataIsSubmittedService()
{
// the table data is now stored in a Textcontext
var message = TestContext.Messages;
byte? result = null;
foreach (Hashtable entry in message)
{
var values = entry.Values;
// problem area
foreach (Hashtable item in values)
{
var Ids = item["id"];
var messages = item["message"];
// send message to service accepts string,string input
sendMessageResult = client.SendMessageToService((string)appIds, (string)messages);
}
}
}
由于所有值都有自己的键值对。我试图在第二个循环中访问它,但它没有循环哈希表值的集合。
我不明白为什么我不能在第二个循环中循环所有的值集合
答案 0 :(得分:0)
将Hashtable替换为Dictionary后,我可以访问数据。