package table_test import ( "strings" . "github.com/onsi/ginkgo/extensions/table" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Table", func() { DescribeTable("a simple table", func(x int, y int, expected bool) { Ω(x > y).Should(Equal(expected)) }, Entry("x > y", 1, 0, true), Entry("x == y", 0, 0, false), Entry("x < y", 0, 1, false), ) type ComplicatedThings struct { Superstructure string Substructure string Count int } DescribeTable("a more complicated table", func(c ComplicatedThings) { Ω(strings.Count(c.Superstructure, c.Substructure)).Should(BeNumerically("==", c.Count)) }, Entry("with no matching substructures", ComplicatedThings{ Superstructure: "the sixth sheikh's sixth sheep's sick", Substructure: "emir", Count: 0, }), Entry("with one matching substructure", ComplicatedThings{ Superstructure: "the sixth sheikh's sixth sheep's sick", Substructure: "sheep", Count: 1, }), Entry("with many matching substructures", ComplicatedThings{ Superstructure: "the sixth sheikh's sixth sheep's sick", Substructure: "si", Count: 3, }), ) PDescribeTable("a failure", func(value bool) { Ω(value).Should(BeFalse()) }, Entry("when true", true), Entry("when false", false), Entry("when malformed", 2), ) DescribeTable("an untyped nil as an entry", func(x interface{}) { Expect(x).To(BeNil()) }, Entry("nil", nil), ) })