首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在golang中从Gherkin datatable输入布尔值?

在golang中,要从Gherkin datatable输入布尔值,可以通过以下步骤实现:

  1. 在Golang中,可以使用godog库来处理Gherkin特性文件和场景。确保你已经安装了godog库。
  2. 首先,需要在Gherkin特性文件中定义一个场景,并使用数据表传递布尔值。例如:
代码语言:txt
复制
Feature: Golang Gherkin Datatable

  Scenario: Example scenario
    Given I have a datatable with boolean values
      | is_enabled |
      | true       |
      | false      |
      | true       |
  1. 接下来,在Golang代码中,你可以通过实现Gherkin步骤来处理这个场景。创建一个.feature文件并命名为datatable.feature,然后编写以下代码:
代码语言:txt
复制
package main

import (
    "fmt"
    "github.com/DATA-DOG/godog"
    "github.com/DATA-DOG/godog/gherkin"
    "strconv"
)

type datatableFeature struct {
    isEnabled []bool
}

func (f *datatableFeature) iHaveADataTableWithBooleanValues(table *gherkin.DataTable) error {
    for _, row := range table.Rows {
        isEnabled, err := strconv.ParseBool(row.Cells[0].Value)
        if err != nil {
            return err
        }
        f.isEnabled = append(f.isEnabled, isEnabled)
    }
    return nil
}

func (f *datatableFeature) theBooleanValuesShouldBeStoredCorrectly() error {
    for i, isEnabled := range f.isEnabled {
        fmt.Printf("Value %d: %v\n", i, isEnabled)
    }
    return nil
}

func FeatureContext(s *godog.Suite) {
    f := &datatableFeature{}

    s.Step(`^I have a datatable with boolean values$`, f.iHaveADataTableWithBooleanValues)
    s.Step(`^the boolean values should be stored correctly$`, f.theBooleanValuesShouldBeStoredCorrectly)
}

func main() {
    status := godog.TestSuite{
        Name:                "Gherkin Datatable",
        ScenarioInitializer: FeatureContext,
        Options: &godog.Options{
            Format:   "pretty",
            Paths:    []string{"datatable.feature"},
            NoColors: false,
        },
    }.Run()

    if status != 0 {
        fmt.Println("Test failed")
    }
}
  1. 运行以上代码,你将会看到如下输出:
代码语言:txt
复制
Value 0: true
Value 1: false
Value 2: true

在上面的代码中,iHaveADataTableWithBooleanValues函数将Gherkin中的数据表转换为Golang中的布尔值,并将其存储在isEnabled切片中。theBooleanValuesShouldBeStoredCorrectly函数用于验证布尔值是否正确存储。

这是一个基本的示例,你可以根据实际需求进行修改和扩展。请确保你已经按照godog库的要求正确安装和配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • WCF服务调用超时错误:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30”(已解决)

    线上正式环境调用WCF服务正常,但是每次使用本地测试环境调用WCF服务时长就是出现:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30” 这个问题,查阅了网上很多资料各种说法的都有,有的说是什么请求站点不在同一个域下,有的说什么应为datatable中有一个属性没有赋值各种答非所问的问题。其实从错误信息中就可以看出来其实就是调用超时了。

    01

    【Python100天学习笔记】Day2 Python语言元素

    计算机的硬件系统通常由五大部件构成,包括:运算器、控制器、存储器、输入设备和输出设备。其中,运算器和控制器放在一起就是我们通常所说的中央处理器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据。我们通常所说的程序实际上就是指令的集合,我们程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令去控制计算机做我们想让它做的事情。今天我们大多数时候使用的计算机,虽然它们的元器件做工越来越精密,处理能力越来越强大,但究其本质来说仍然属于“冯·诺依曼结构”的计算机。“冯·诺依曼结构”有两个关键点,一是指出要将存储设备与中央处理器分开,二是提出了将数据以二进制方式编码。二进制是一种“逢二进一”的计数法,跟我们人类使用的“逢十进一”的计数法没有实质性的区别,人类因为有十根手指所以使用了十进制(因为在数数时十根手指用完之后就只能进位了,当然凡事都有例外,玛雅人可能是因为长年光着脚的原因把脚趾头也算上了,于是他们使用了二十进制的计数法,在这种计数法的指导下玛雅人的历法就与我们平常使用的历法不一样,而按照玛雅人的历法,2012年是上一个所谓的“太阳纪”的最后一年,而2013年则是新的“太阳纪”的开始,后来这件事情被以讹传讹的方式误传为”2012年是玛雅人预言的世界末日“这种荒诞的说法,今天我们可以大胆的猜测,玛雅文明之所以发展缓慢估计也与使用了二十进制有关)。对于计算机来说,二进制在物理器件上来说是最容易实现的(高电压表示1,低电压表示0),于是在“冯·诺依曼结构”的计算机都使用了二进制。虽然我们并不需要每个程序员都能够使用二进制的思维方式来工作,但是了解二进制以及它与我们生活中的十进制之间的转换关系,以及二进制与八进制和十六进制的转换关系还是有必要的。如果你对这一点不熟悉,可以自行使用维基百科或者百度百科科普一下。

    01
    领券