在上次考试中,我有问题,我无法理智地回答。 问题是“前提条件太弱可能会出现什么问题? ” 另一个问题是“后置条件太强会导致什么问题? ” 如何回答这个问题? 我试图解释弱前置条件评估为真,可能不足以暗示强后置条件为真,但似乎还不够。 我想知道,什么是正式的理智答案,实际上是两个简短的问题。 “前 ...
在上次考试中,我有问题,我无法理智地回答。 问题是“前提条件太弱可能会出现什么问题? ” 另一个问题是“后置条件太强会导致什么问题? ” 如何回答这个问题? 我试图解释弱前置条件评估为真,可能不足以暗示强后置条件为真,但似乎还不够。 我想知道,什么是正式的理智答案,实际上是两个简短的问题。 “前 ...
我一直在阅读按合同设计的主题,到目前为止,我写了以下注释: 我想确认一个例子来澄清我的理解。 契约式设计表示,如果exampleA中processInt的前提条件是“ exampleInt必须大于 10”,而后置条件是“返回值在 20 到 50 之间”,那么exampleB的方法exampleInt ...
我正在研究“按合同设计”的开发方法。 但是,我很难看到它的优势。 例如,据说这种方法的特点之一是function的前提条件可以用它的header来表达。 因此,我们可以有这个例子,其中我们将数字 10 除以任何数字,其前提是它必须大于 0: 但是,与其他更传统的做法相比,它给我带来了什么好处? 我所 ...
如何在埃菲尔进一步提出异常? 我有3个案例我想重试 我想关闭数据库连接并忽略异常 我想关闭数据库连接并将 email 发送给管理员并忽略 我想关闭db_connection并进一步引发异常,我会把我能想到的所有情况都放在上面的代码中 ...
我试图有一个结构,它把自己谈论变体和不变量变成埃菲尔循环,但不理解变体部分! from l_array := <<1,2,30,60>> l_index := l_array.lower invariant valid_local_index: l_a ...
有时,检查和合同构造需要详细说明,当删除断言以提高性能并避免使用编译器的“唯一”工作做无用的事情时,需要避免这种情况。 我指的是前。 在循环检查或其他事情中工作。 有时不得不构建一个 function 或者不得不考虑如何在断言打开时不执行而构建它,这违背了合约的直观方式及其意义。 我特别提到chec ...
有没有办法为前置条件和后置条件指定自定义错误/失败消息,类似于Predicate_Failure的 Predicate_Failure? 我似乎无法在官方文档中找到任何内容。 TIA。 ...
我有一个Activity 、一个Presenter和一个Activity和Presenter都实现的Contract 。 Activity将有一些独特的 UI 内容,必须从Presenter中调用。 Presenter还必须能够调用 Activity(例如sendBroadcast() ),这 ...
即使我在项目设置中启用了 Eiffel Studio 似乎也满足了我的要求。 据我记得,我有时间在需求中设置一个断点...... 我不明白我在这里缺少什么,正如您在我的示例中看到的那样,要求通过,因为我对代码有相同的条件并且它进入( attached {POWER_DEVICE} a_csv.de ...
我有一个非常简单的 express js 服务器,它接受来自客户端的请求,执行一些业务逻辑并响应客户端。 请求-响应管道由 controller 处理,业务逻辑在服务层内部执行。 该代码可以正常工作,但我不确定从服务层向 controller 返回错误的方式是否正确。 controller 看起来 ...
我见过很多类似的问题这个和这个。 有些人看到 TDD 和 Design by Contract 之间存在重叠,而其他人则说它们是互补的,我偏向于第二个,所以我需要一个非常基本、正确和完整的任何语言的示例,甚至是关于如何使用它们的伪示例一起。 ...
方法markStudent(...)和getUnitMark(...)中的前提条件代码使用该类的其他方法:isEnrolled(...)和hasCompletedAssessments(...)。 问题是,前提条件代码中使用的方法(例如isEnrolled(...)和hasComplet ...
我有参数化测试,例如: 测试test_good_input必须仅适用于有效的时间字符串(对于无效数据,我还有另一个测试test_bad_input )。 我如何强调它 - 在文档字符串中,或对输入数据使用断言? 使用文档字符串 带验证输入 或者还有其他方法吗? ...
我想知道是否有任何工具可以根据方法的前置条件和后置条件(以及类不变性)自动生成单元测试。 确切地说,假设我们为方法指定了前置条件和后置条件(并且可能是类不变的),并且我们希望基于该信息生成单元测试。 我正在为此目的寻找实用工具。 我知道Korat和TestWizard。 您能否再 ...
在阅读按合同设计教程时,我偶然发现了以下内容: 埃菲尔铁塔的合同不仅仅是一厢情愿。 可以在运行时在编译选项的控制下对其进行监视。 随后说明它们在失败时将引发异常。 它使我认为所有require ensure invariant all检查都可以在运行时执行或关闭。 这个对 ...
处理从数据库中返回具有以下3种潜在结果的记录的可接受方法: db连接有效,找到一个用户并返回一个填充的用户对象 db连接有效,找不到用户,返回新的用户对象 DB连接/查询失败... 我大部分时间都是按合同设计的: 在数据库连接或查询失败的情况下,我应该做 ...
就像心理学中的双重约束一样,有没有办法告诉一个表达暗示另一种表达呢? 会像 可能相当于 T代表True布尔表达式 F代表错误 R代表结果 意味着(a,b:BOOLEAN):BOOLEAN 和(a,b:BOOLEAN):BOOLEAN ...
我知道DbC要求调用者对前提(参数或成员变量的值)负责,而我刚刚读过其中一本书,实际上很少有人敢于承担所有责任。调用代码,不要检查被调用例程中的输入。 但是我在想,这还会导致重复吗? 如果我需要从多个位置调用方法该怎么办..在所有这些位置,我都需要确保满足先决条件。 我可以从几个模 ...
我经常使用assertthat包来检查函数中的后置条件。 在阅读更多有关按合同设计的想法时,我偶然发现了将输出与输入值进行比较的想法。 最简单的示例如下: 可以立即声明x == !old_x必须始终为true。 ( old_x代表评估前x的值。) (当然,此示例过于简化, ...