gpt4 book ai didi

oop - 使用断言 :equals: in pharo

转载 作者:行者123 更新时间:2023-12-04 19:46:40 25 4
gpt4 key购买 nike

我在 Pharo 中有以下程序:2 类 Yacht 和 YachtRental,测试类和 YachtRental 测试。我需要执行以下操作:在第 4 天,客户获得每日费率的折扣 = 10%。这是我的代码:

我需要执行以下操作:在第 4 天,客户获得每日费率的 10% 折扣。这是我的代码:

| yachtRental myCruise |
yachtRental := YachtRental new.
myCruise := Yacht cruise.
self assert: (yachtRental priceFor: myCruise days: 4) = 890

基本上,我需要能够在这里实现 10% 的折扣,但是有一条消息“使用断言:等于:在规则失败时产生更好的上下文”,你能帮我解释一下它有什么问题吗?

最佳答案

assert: 采用 bool 值,而 assert:equals: 采用两个表达式。而且,assert: 不知道您在测试什么,但是 assert:equals: 知道您在测试两个事物是否相等。

如果您的测试失败,assert: 无法打印有意义的失败消息,因为它可以访问的所有信息都是 false,所以它只能打印“我原以为是真的,但事实并非如此。”

assert:equals: 可以访问两个表达式的值,因此可以打印类似“我希望 foo 等于 bar”。

由于良好的失败消息是测试库最重要的方面之一,测试库的作者正在指导您使用他们库中更具表现力的断言,而不是通用的“这是真的吗?”

[注意:我在这里忽略反射。当然,这两种方法都可以反射(reflection)性地检查测试的源代码。]

关于oop - 使用断言 :equals: in pharo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54136095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com