如何在给定位置和长度处查找字符串值

时间:2014-03-29 16:41:17

标签: c# .net specflow

我正在准备一个测试用例来测试我从网络服务获取的字符串响应消息中的值。

示例字符串结果=" ----- 1234 ------- DEV ------- 2014-03-30 ---- 44"

Field                     Length    position     Value
TRANS LENGTH                4          5          1234
TRANS DEST              7          9           DEV
TRANS ORGN              7          16          PROD
TRANS DATE              6          23          2014-03-30
TRANS ID                4          35          44

当我从网络服务获得字符串响应时, 我想检查一下我是否能找到价值' 1234'在第5位和第4位。

示例:

Assert.AreEqual("TODO", TestContext.TRANSLENGTH);  TestContext.TRANSLENGTH.value(1234)

TODO:我想在这里查看如何使用上面给出的位置和长度从传入消息中找到TRANS LENGTH。  一旦我找到它,我会断言它是否等于我所期待的。

以下是我如何从specflow表中读取数据:

public class SpecFlowData
{
    public string Field { get; set; }
    public string Value { get; set; }
    public string Position { get; set; }
    public string Length { get; set; }



    public List<SpecFlowData> GetInputMessage(Table table)
    {

        var data = table.CreateSet<SpecFlowData>();
        var elements = (from item in data

                        select new SpecFlowData
                            {
                                Field = item.Field, 
                                Value = item.Value,
                                Position = item.Position,
                                Length = item.Length
                            }
                       ).ToList();
        return elements;
    }

编辑: 例如,响应TRANS ID可以是&lt; = 4个字符,它们是为TRANS ID字段分配的最大区域。

假设我已经预期来自给定表的TRANS ID = 44并且Web服务响应TRANS ID是(result.Substring(35,4))。由于specflow表TRANS ID期望44而不是44和两个空格,测试将不会通过。如何断言这种情况?感谢

0 个答案:

没有答案