本文整理汇总了Golang中github.com/fgrosse/goldi.Container.RegisterType方法的典型用法代码示例。如果您正苦于以下问题:Golang Container.RegisterType方法的具体用法?Golang Container.RegisterType怎么用?Golang Container.RegisterType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/fgrosse/goldi.Container
的用法示例。
在下文中一共展示了Container.RegisterType方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1:
typeDef := goldi.NewStructType(&MockType{}, "%param1%", "%param2%")
config["param1"] = "TEST"
config["param2"] = true
generatedType, err := typeDef.Generate(resolver)
Expect(err).NotTo(HaveOccurred())
Expect(generatedType).To(BeAssignableToTypeOf(&MockType{}))
generatedMock := generatedType.(*MockType)
Expect(generatedMock.StringParameter).To(Equal("TEST"))
Expect(generatedMock.BoolParameter).To(Equal(true))
})
Context("when a type reference is given", func() {
Context("and its type matches the struct field type", func() {
It("should generate the type", func() {
container.RegisterType("foo", NewMockType)
typeDef := goldi.NewStructType(TypeForServiceInjection{}, "@foo")
generatedType, err := typeDef.Generate(resolver)
Expect(err).NotTo(HaveOccurred())
Expect(generatedType).To(BeAssignableToTypeOf(&TypeForServiceInjection{}))
generatedMock := generatedType.(*TypeForServiceInjection)
Expect(generatedMock.InjectedType).To(BeAssignableToTypeOf(&MockType{}))
})
})
Context("and its type does not match the function signature", func() {
It("should return an error", func() {
container.RegisterType("foo", NewFoo)
typeDef := goldi.NewStructType(TypeForServiceInjection{}, "@foo")