加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

单元测试 – 用模拟进行数据驱动的测试

发布时间:2020-12-14 16:25:07 所属栏目:大数据 来源:网络整理
导读:我有一个接收ContactForm对象和带收件人的地图的方法.所以我写了以下规范,根据表单的查询,返回Map中正确的收件人: def "Correct recipients for first inquiry"() { setup: def form = Mock(ContactForm) form.getInquiry() "Subject 1" expect: sut.getRec
我有一个接收ContactForm对象和带收件人的地图的方法.所以我写了以下规范,根据表单的查询,返回Map中正确的收件人:

def "Correct recipients for first inquiry"() {
    setup:
    def form = Mock(ContactForm)
    form.getInquiry() >> "Subject 1"

    expect:
    sut.getRecipients(form,recipientsTestMap) == ["recipient1"]
}

def "Correct recipients for second inquiry"() {
    setup:
    def form = Mock(ContactForm)
    form.getInquiry() >> "Subject 2"

    expect:
    sut.getRecipients(form,recipientsTestMap) == ["recipient2"]
}

// and so on ...

是否有数据驱动的方式来做到这一点?不幸的是,没有传递表单,但查询字符串本身现在不是一个选项,因为这将需要大量重构.我很好奇Spock是否有可能做这个数据驱动,尽管在每次测试之前必须更改模拟.

解决方法

您可以通过以下方式执行此操作(不确定这是否是您要求的):

@Unroll
def "Correct recipients for #inquiry inquiry"() {
    setup:
    def form = Mock(ContactForm)
    form.getInquiry() >> inquiry

    expect:
    sut.getRecipients(form,recipientsTestMap) == result

    where:
    inquiry     | result
    "Subject 1" | ["recipient1"]
    "Subject 2" | ["recipient2"]
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读