unit-testing - 在调试检查相等性的合同违规时如何获取更多信息
问题描述
我有以下埃菲尔代码。我正在使用合同进行测试驱动设计。
check
sorter.sorted (<<1>>).is_equal (<<1>>)
end
代码正确检测到我的排序返回错误值。但是,很高兴看到sorted
返回的内容。我可以看到is_equals
在检查引发异常之前消耗这两个值并返回 false 为时已晚。
我在其他测试框架中看到他们有一个特殊is_equal
的测试框架。这样可以提供更好的反馈。例如
check_equal(expected, value_under_test)
埃菲尔有这样的东西吗?
解决方案
我建议看一下 library testing
。特别是,类EQA_COMMONLY_USED_ASSERTIONS
具有assert_equal
似乎可以做您想做的事情的功能:
assert_equal (a_tag: READABLE_STRING_GENERAL; expected, actual: detachable ANY)
-- Check that `expected ~ actual'.
原来的例子看起来像
assert_equal ("Is array sorted?", sorter.sorted (<<1>>), <<1>>)
推荐阅读
- javascript - 无法使用 ajax 显示根据 id 的状态
- android - 增加 Android 系统应用程序的可用堆内存
- hyperledger-composer - 避免历史记录 - Hyperledger Composer
- python - 类似于seaborn在情节中的色调功能?
- observable - Angular 6,Rxjs 6,使用 HttpClient 处理登录
- angular - Angular 6 - 将日期字符串与数组过滤器上的日期进行比较
- c++ - 绑定到可变成员函数
- android - 保持 Intent 服务运行?
- sql-server - TSQL 强制转换视图定义中的所有列
- vue.js - ASP.NET Core SPA Vue 模板与 Vue CLI