假设我有以下设置器:
public void setNewPath(final String path) {
if (StringUtils.hasText(path) && !path.endsWith(File.separator)) {
this.newPath = path + File.separator;
} else {
this.newPath = path;
}
}
我想在测试方法中模拟参数
path
。那可能吗? 最佳答案
这不是嘲笑的好问题。考虑到字符串是不可变的,在任何情况下都不会在适当的地方修改参数,尽管模拟可以告诉您是否调用了某个方法,但它不会让您跟踪要进行的修改的值。
正如布赖恩·阿格纽(Brian Agnew)在评论中所发表的那样:“使用各种输入来测试方法,并断言某些行为(例如newPath的设置)”。确保newPath
具有吸气剂,即使该吸气剂仅用于测试(并已记录在案)。