首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何引用Fancordion夹具表中的行索引?

如何引用Fancordion夹具表中的行索引?
EN

Stack Overflow用户
提问于 2015-12-12 03:49:55
回答 1查看 35关注 0票数 1

使用Fancordion v1.0.4中的表,如何使用列命令中的行索引来验证其值。

例如,如果我的夹具是:

代码语言:javascript
复制
class MyFixture : FixtureTest {

    [Str:Obj?][] getCountries() {
         return [["code":"AU", "name":"Australia"], ["code":"NZ", "name":"New Zealand"], ["code":"UK", "name":"United Kingdom"]]
    }
}

规范是:

代码语言:javascript
复制
table:
col[0]+verifyEq:getCountries[#ROW]["code"]
col[1]+verifyEq:getCountries[#ROW]["name"]

Country Code    Country Name
------------    ------------
AU              Australia
NZ              New Zealand
UK              United Kingdom

在上面的规范示例中,我应该使用什么代替#ROW占位符?

有更好的方法来编写这个规范和夹具吗?例如,是否最好在夹具中创建一个方法来检索列表中的每个单独的映射,而不是完整的列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-12 17:11:08

正如您注意到的,没有#ROW宏(但它可能是一个很好的添加!)因此,目前您需要更改断言或数据结构。

更改断言:

在这里,我们稍微修改断言,并引入我们自己的row字段,在每一行迭代结束时递增:

代码语言:javascript
复制
**  Hi!
** 
**   table:
**   col[0]+verifyEq:getCountries[#FIXTURE.row]["code"]
**   col[1]+verifyEq:getCountries[#FIXTURE.row]["name"]
**   row+exe:row++
**
**   Country Code    Country Name
**   ------------    ------------
**   AU              Australia
**   NZ              New Zealand
**   UK              United Kingdom
** 
class CountryTest : FixtureTest {
    Int row := 0

    [Str:Obj?][] getCountries() {
         return [["code":"AU", "name":"Australia"], ["code":"NZ", "name":"New Zealand"], ["code":"UK", "name":"United Kingdom"]]
    }
}

改变数据结构:

更好的方法可能是将正在测试的数据更改为列表。因为当测试数据太多或太少时,这有一个额外的好处,那就是失败。

代码语言:javascript
复制
**  Hi!
** 
**   table:
**   verifyRows:getCountries()
**
**   Country Code    Country Name
**   ------------    ------------
**   AU              Australia
**   NZ              New Zealand
**   UK              United Kingdom
** 
class CountryTest : FixtureTest {

    Str[][] getCountries() {
        countries := [["code":"AU", "name":"Australia"], ["code":"NZ", "name":"New Zealand"], ["code":"UKs", "name":"United Kingdom"]]
        return countries.map { it.vals }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34236040

复制
相关文章

相似问题

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