作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有很多这样的子类:
abstract class Fruit {
...
String getType() {
// get the discriminator value for this type
GrailsDomainBinder.getMapping(this.class).discriminator
}
}
class Apple extends Fruit {
static mapping = {
discriminator 'Apple'
}
}
class Pear extends Fruit {
static mapping = {
discriminator 'Pear'
}
}
Fruit
是基本类型,其中
Apple
和
Pear
是子类型。我公开了
type
属性,该属性获取在子类中设置的鉴别值。
JsonExportService
将实例导出为JSON数据。当我运行应用程序时,此服务正确导出用鉴别符值填充的
type
属性。
JsonExportService
编写单元测试。问题是,在单元测试中
GrailsDomainBinder
似乎没有被 mock ,并且我得到了NPE:无法访问空对象上的
discriminator
属性。
class Pear extends Fruit {
static String type = 'Pear'
...
}
getType()
代码更改为:GrailsDomainBinder.getMapping(this.class)?.discriminator
getType()
方法返回正确的值。 最佳答案
似乎DefaultGrailsDomainConfiguration
是初始化映射的负责人,因此您可以尝试:
def domainClass = grailsApplication.getDomainClass(Pear.class.name)
DefaultGrailsDomainConfiguration.configureDomainBinder(grailsApplication, [domainClass] as Set)
println GrailsDomainBinder.getMapping(Pear)
关于grails - 在Grails中,如何在单元测试中模拟GrailsDomainBinder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13755837/
我是一名优秀的程序员,十分优秀!