46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
|
package matchers_test
|
||
|
|
||
|
import (
|
||
|
. "github.com/onsi/ginkgo"
|
||
|
. "github.com/onsi/gomega"
|
||
|
. "github.com/onsi/gomega/matchers"
|
||
|
)
|
||
|
|
||
|
var _ = Describe("Panic", func() {
|
||
|
Context("when passed something that's not a function that takes zero arguments and returns nothing", func() {
|
||
|
It("should error", func() {
|
||
|
success, err := (&PanicMatcher{}).Match("foo")
|
||
|
Ω(success).Should(BeFalse())
|
||
|
Ω(err).Should(HaveOccurred())
|
||
|
|
||
|
success, err = (&PanicMatcher{}).Match(nil)
|
||
|
Ω(success).Should(BeFalse())
|
||
|
Ω(err).Should(HaveOccurred())
|
||
|
|
||
|
success, err = (&PanicMatcher{}).Match(func(foo string) {})
|
||
|
Ω(success).Should(BeFalse())
|
||
|
Ω(err).Should(HaveOccurred())
|
||
|
|
||
|
success, err = (&PanicMatcher{}).Match(func() string { return "bar" })
|
||
|
Ω(success).Should(BeFalse())
|
||
|
Ω(err).Should(HaveOccurred())
|
||
|
})
|
||
|
})
|
||
|
|
||
|
Context("when passed a function of the correct type", func() {
|
||
|
It("should call the function and pass if the function panics", func() {
|
||
|
Ω(func() { panic("ack!") }).Should(Panic())
|
||
|
Ω(func() {}).ShouldNot(Panic())
|
||
|
})
|
||
|
})
|
||
|
|
||
|
Context("when assertion fails", func() {
|
||
|
It("should print the object passed to Panic", func() {
|
||
|
failuresMessages := InterceptGomegaFailures(func() {
|
||
|
Ω(func() { panic("ack!") }).ShouldNot(Panic())
|
||
|
})
|
||
|
Ω(failuresMessages).Should(ConsistOf(MatchRegexp("not to panic, but panicked with\\s*<string>: ack!")))
|
||
|
})
|
||
|
})
|
||
|
})
|