只是想知道是否可以将方法标记为待在pharo中实现,就像您可以在Java中使用“ todo”来实现
我真的很难跟踪没有这样的东西在pharo上完成的事情
答案 0 :(得分:11)
其实现仍待执行的方法应发送notYetImplemented
消息,如下所示:
methodImNotSureHowToImplement
^self notYetImplemented
如果仍然发送未执行的消息,它将发出NotYetImplemented
异常信号,该异常将知道有问题的选择器,在我的示例中为#methodImNotSureHowToImplement
。
还要注意,这将使查找所有需要作为#notYetImplemented
的发送者的方法变得容易。
由于#notYetImplemented
的存在,NotYetImplemented
的实现非常简单。
notYetImplemented
"Announce that this message is not yet implemented"
NotYetImplemented signalFor: thisContext sender selector
还请注意,NotYetImplemented
是SelectorException
的子类之一,它为几种类似情况建模:
SelectorException
NotYetImplemented
PrimitiveFailed
ShouldBeImplemented
ShouldNotImplement
SubclassResponsibility
答案 1 :(得分:1)
问了两天后,我几乎是偶然地自己找到了解决方案,只是在没有任何测试的方法上使用上下文菜单选项jump to test method
。 Pharo会自动生成一个空测试:
self flag: #toImplement.
self assert: false`
第一行不仅可以在测试中使用,它还为我带来了预期的行为,因为它会自动将包含该方法的方法归类到标记为flags
的{{1}}类别上,从而轻松实现一目了然,检查哪些方法正在处理中。
第二行强制测试失败,并以黄色显示,这很有用,因为如果为空,它将通过并以绿色显示,可能导致认为如果不是这种情况,它已经完成了。只需使用"!"
我可能会使用不完整的方法开始做这样的事情:
self notYetImplemented
答案 2 :(得分:1)
您还可以使用编译指示标记此类方法
答案 3 :(得分:0)
由于Smalltalk提供了敏捷开发的起源,所以让我提供一个不同的答案。在失败的单元测试中。由于您不应该拥有太多这些,它会自动提供压力来限制进行中的工作(打开的#toDo的数量)。