【发布时间】:2015-03-03 19:49:05
【问题描述】:
我正在使用 Traits 使我的控制器干燥。我想使用 Spock 对 Trait 类进行单元测试。这里分别是我的样本 trait 和 Spock 测试用例:
trait SomeTrait {
public void checkSomething (Closure c ){
// Do some operation
c.call
}
}
@TestMixin(GrailsUnitTestMixin)
class SomeTraitSpec extends Specification {
void "test checkSomething "(){
setup:
MockedClass mockedObj = new MockedClass()
def x=0
def c = {
x=1
}
when:
mockedObj.checkSomething(c)
then:
assert x==1
}
}
class MockedClass implements PermissionTrait {
// some thing
}
由于 trait 是一个接口,我的测试用例中有一个 Mocked 类,它实现了 Trait,我创建了这个 Mocked 类的一个对象并调用我想要测试的 Trait 方法。这是正确的方法吗,如果不是,请用一个恰当的例子指出正确的方向。
【问题讨论】:
-
有人遇到过这种情况吗?
标签: unit-testing grails spock traits grails-2.4