eiffel - estudio 什么时候不检查`require`?
问题描述
即使我在项目设置中启用了 Eiffel Studio 似乎也满足了我的要求。据我记得,我有时间在需求中设置一个断点......
我不明白我在这里缺少什么,正如您在我的示例中看到的那样,要求通过,因为我在代码上具有相同的条件并且它进入(attached {POWER_DEVICE} a_csv.device as l_dev
)。
解决方案
继承断言的一般规则如下:
- 前提条件只能放宽;
- 只能加强后置条件。
在特定示例中,有效的前提条件是
True
or else
valid_csv (a_csv) and then attached {POWER_DEVICE} a_csv.device
require
这通过特征的扁平形式中组合前置条件的开头和require else
中间的关键字反映出来。表达式True
是继承的。这是父项中特征的先决条件。
一个可能的解决方案是移动valid_csv (a_csv)
到父特征,并valid_csv
在后代中重新定义。如果valid_csv
对于所有调用都是通用的,但第二个测试因后代而异,则最好引入一个新功能is_known
并在父级中有 2 个前置条件子句:
is_valid_csv: is_valid_csv (a_csv)
is_known_csv: is_known_csv (a_csv)
is_known_csv
类中的实现POWER_CSV_PROCESSOR
将是
is_known_csv (a_csv: ...)
do
Result := attached {POWER_DEVICE} a_csv.device
end
并且 feature process
in的前提条件POWER_CSV_PROCESSOR
是空的。
然后调用者会做类似的事情
if processor.is_known_csv (csv) then
processor.process (csv)
end
推荐阅读
- discord.js - Discord.js Commando 广播所有命令错误
- spring-boot - 使用spring-boot-starter-oauth2-client时如何配置bearer-only = true
- hugo - Hugo:生成时不要在页面中转义 HTML .Title
tag in the header.html partial</h1> <div id="body"><p>In my Hugo-based website, I often use <code><span></code> tags within my post titles. I am experiencing an issue where this HTML - java - 为什么一个类的java字节码已经出现了新的静态内部类的代码出现jvm指令ACONST_NULL
- r - R Shiny--as.POSIXlt.default 中的错误:不知道如何将“x”转换为“POSIXlt”类
- python - 命令“python setup.py egg_info”失败,错误代码 1 在 /tmp/..../
- python - Python:如何找到解码字符串的所有方法?
- sql - 限制活动记录查询的特定部分
- javascript - 集合快照?Firebase 带 js
- discord.py - 囚徒角色,Discord.py 1.5.0a