首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Perl单元测试深层结构

Perl单元测试深层结构
EN

Stack Overflow用户
提问于 2011-02-08 19:01:28
回答 4查看 722关注 0票数 2

TMTOWTDI,我当然希望如此--每当我遇到多维哈希(有时是4-5层深)时,我已经在我的最后几个项目中使用了Test::Deep。现在,我通常的做法就是输入这些散列并填充我期望的数据,然后运行cmp_deeply(actual, expected, msg)。有人对像这样的深度嵌套数据进行单元测试有什么建议吗?-我目前的方法似乎效率非常低,有时每个数据结构的单元测试需要一个多小时。

EN

Stack Overflow用户

发布于 2014-06-13 00:31:48

如果您只是想测试一下这个结构,可以试试Data::Validate::Struct

您需要定义一个参考数据结构来与实际数据结构进行比较,该数据结构可以是任何级别的深度,可以是嵌套哈希/数组的任何组合。

这里最重要的是,这个模块验证的是数据类型,而不是实际的数据。

例如:

代码语言:javascript
运行
复制
my $exp = {
'body' => {
    'results' => [
        {
            'template' => [
                {
                    'origin' => 'word',
                    'name' => 'word',
                    'id' => 'int',
                    'attributes' => [
                       {
                           'value' => 'number',
                           'key' => 'word'
                       },
                       {
                           'value' => 'text' ,
                           'key' => 'word'
                       }
                    ],
                    'hostname' => 'hostname',
                }
            ]
        }
        ]
    }
};

然后

代码语言:javascript
运行
复制
my $v = new_ok('Data::Validate::Struct', [ $exp ]);
ok($v->validate($act), 'validate an exp against an act' . $v->errstr());

我将根据$exp验证$act的结构

试着在模块上看看Tests ,我发现它非常有用。

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4932218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档