Зависит от того, что вы хотите проверить.Сначала вы должны использовать Mock или Spy, чтобы иметь возможность проверить количество вызовов.
Например, вы можете проверить, был ли вызван метод getFileName()
из метода updateSpec()
и вызван ли он с аргументом '1'
, например:
def "update spec"() {
given:
Person person = Spy(Person)
when:
person.updateSpec('1')
then:
1 * person.getFileName('1')
}
Если вам действительно нужнопроверьте, был ли вызван File.delete()
, тогда лучше немного поменять класс Person
, потому что вам нужно File
макет, на котором вы можете проверить счетчик вызовов:
class Person {
File getFile(String number) {
return new File("file" + number)
}
void updateSpec(String number) {
getFile(number).delete()
}
}
ИЗатем можно выполнить тест:
def "File delete was called"() {
given:
File file = Mock(File)
Person person = Spy(Person)
person.getFile(_) >> file
when:
person.updateSpec('1')
then:
1 * file.delete()
}
Другой вариант будет заключаться в том, чтобы внедрить некоторый FileService
, который будет инкапсулировать метод File.delete()
, в класс Person
и проверить его на нем.