1 回答

TA貢獻1803條經驗 獲得超3個贊
Go 沒有支持拆解方法的內置功能。但是,有多個第三方包可以實現這一點。其中,我最喜歡銀杏包。它非常有表現力并且避免了代碼重復。
樣本測試看起來像
var _ = Describe("Book", func() {
? ? var (
? ? ? ? longBook? Book
? ? ? ? shortBook Book
? ? )
? ? BeforeEach(func() {
? ? ? ? longBook = Book{
? ? ? ? ? ? Title:? "Les Miserables",
? ? ? ? ? ? Author: "Victor Hugo",
? ? ? ? ? ? Pages:? 1488,
? ? ? ? }
? ? ? ? shortBook = Book{
? ? ? ? ? ? Title:? "Fox In Socks",
? ? ? ? ? ? Author: "Dr. Seuss",
? ? ? ? ? ? Pages:? 24,
? ? ? ? }
? ? })
? ? Describe("Categorizing book length", func() {
? ? ? ? Context("With more than 300 pages", func() {
? ? ? ? ? ? It("should be a novel", func() {
? ? ? ? ? ? ? ? Expect(longBook.CategoryByLength()).To(Equal("NOVEL"))
? ? ? ? ? ? })
? ? ? ? })
? ? ? ? Context("With fewer than 300 pages", func() {
? ? ? ? ? ? It("should be a short story", func() {
? ? ? ? ? ? ? ? Expect(shortBook.CategoryByLength()).To(Equal("SHORT STORY"))
? ? ? ? ? ? })
? ? ? ? })
? ? })
})
相似之處還有其他生命周期方法afterEach,如justBeforeEach等。
- 1 回答
- 0 關注
- 142 瀏覽
添加回答
舉報