【发布时间】:2018-03-31 20:35:50
【问题描述】:
我有这个简单的方法
@Override
public List<DataRule> parseFile(String filename) {
IFileParser wrapper = new RuleFileParserWrapper();
return wrapper.parseRuleFile(filename);
}
但是如何创建一个可以在 Spock 中模拟 new 调用的测试呢?
这样它会尝试使用真正的方法
def "should parse file"() {
setup:
def parser = new DefaultRuleParser()
def wrapper = Mock(RuleFileParserWrapper) { // [new] mock result
parseRuleFile('filename.txt') >> []
}
expect:
[] == parser.parseFile('filename.txt')
}
我可以使用 Powermock 中的 expected 之类的东西,但我想知道 Spock 有没有办法做到这一点。
【问题讨论】: