【发布时间】:2019-01-10 19:59:53
【问题描述】:
我在 Pharo 中有以下程序:2 类 Yacht 和 YachtRental,Test Class 和 YachtRental 测试。我需要执行以下操作:在第 4 天,客户获得折扣 = 每日费率的 10%。这是我的代码:
我需要执行以下操作:在第 4 天,客户获得折扣 = 每日费率的 10%。这是我的代码:
| yachtRental myCruise |
yachtRental := YachtRental new.
myCruise := Yacht cruise.
self assert: (yachtRental priceFor: myCruise days: 4) = 890
基本上,我需要能够在这里实现 10 % 的折扣,但是有一条消息“使用 assert:equals: 在规则失败时产生更好的上下文”,请你帮我解释一下它有什么问题。
【问题讨论】:
-
您可能想询问供应商。出于某种原因,维护人员将此消息添加到语言中。 github.com/pharo-project/pharo/issues(但看起来他们希望您使用
:equals方法/运算符而不是=运算符。) -
你需要有一个失败的方法来感知差异。我建议您编写错误的折扣并观察在错误报告中使用 assert: 与 assert:equals: 的区别。