我正在使用 Groovy 1.8.6 和 Grails 2.1.1
我有一个界面
public interface Searchable{
Long docVersion()
}
由对象实现
class Book implements Searchable {
Long docVersion() {
System.currentTimeMillis() / 1000L
}
String otherMethod() {
"toto"
}
}
和一个测试
@Mock([Book])
class SomeBookTester {
@Before
void setup() {
Book.metaclass.docVersion = {-> 12345}
Book.metaclass.otherMethod = {-> "xyz"}
}
@Test
void test1() {
assert 12345 == new Book().docVersion()
}
@Test
void test2() {
assert "xyz" == new Book().otherMethod()
}
}
第一次测试总是失败,因为方法替换不起作用。我该如何解决这个问题?有什么问题?