有没有办法将方法标记为待在 Pharo 中实施?
Is there a way to mark a method as pending to implement in Pharo?
只是想知道您是否可以将方法标记为等待在 pharo 中实施,就像您在 java 中使用 "todo"
所做的那样
如果没有类似的东西,我真的很难跟踪 pharo 上的完整内容
实施仍未决的方法应发送 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
我在问了 2 天后自己找到了解决方案,几乎是偶然地,只是在没有任何测试的方法上使用上下文菜单选项 jump to test method
。 Pharo 自动生成了一个空测试:
self flag: #toImplement.
self assert: false`
第一行不仅可以在测试中使用,它给了我预期的行为,因为它自动将包含它的方法归类到标有大 "!"
的 flags
类别,允许轻松一目了然地检查哪些方法处于待处理状态。
第二行强制测试失败并显示为黄色,这非常有用,因为如果它为空,它将通过并显示为绿色,可能导致人们相信它已经完成,但事实并非如此。使用 self notYetImplemented
可以达到类似的效果
我可能会开始用我不完整的方法做这样的事情:
MyIncompleteMethod
self flag: #toImplement.
self notYetImplemented.`
你也可以使用pragmas来标记这样的方法
由于Smalltalk提供了敏捷开发的原点,所以我来提供一个不同的答案。在失败的单元测试中。因为你不应该有很多这样的事情,它会自动提供压力来限制正在进行的工作(打开的#toDo 的数量)。
只是想知道您是否可以将方法标记为等待在 pharo 中实施,就像您在 java 中使用 "todo"
所做的那样如果没有类似的东西,我真的很难跟踪 pharo 上的完整内容
实施仍未决的方法应发送 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
我在问了 2 天后自己找到了解决方案,几乎是偶然地,只是在没有任何测试的方法上使用上下文菜单选项 jump to test method
。 Pharo 自动生成了一个空测试:
self flag: #toImplement.
self assert: false`
第一行不仅可以在测试中使用,它给了我预期的行为,因为它自动将包含它的方法归类到标有大 "!"
的 flags
类别,允许轻松一目了然地检查哪些方法处于待处理状态。
第二行强制测试失败并显示为黄色,这非常有用,因为如果它为空,它将通过并显示为绿色,可能导致人们相信它已经完成,但事实并非如此。使用 self notYetImplemented
我可能会开始用我不完整的方法做这样的事情:
MyIncompleteMethod
self flag: #toImplement.
self notYetImplemented.`
你也可以使用pragmas来标记这样的方法
由于Smalltalk提供了敏捷开发的原点,所以我来提供一个不同的答案。在失败的单元测试中。因为你不应该有很多这样的事情,它会自动提供压力来限制正在进行的工作(打开的#toDo 的数量)。