前几天在运行我的应用程序的一个功能测试时,我在代码中遇到了一个导致RoutingError
. 我的功能测试正在加载一个页面,并且在该页面中它正在创建一个指向没有有效路由的页面的链接。异常的具体原因并不是重点——问题是这个异常没有传递回我的测试。我知道发生异常的唯一原因是我碰巧在test.log
文件中注意到它。简而言之,测试通过了,但我认为这应该算作失败!
这让我很困惑。我尝试将我的测试代码放在一个assert_nothing_raised
块中,但它仍然通过了。
进一步挖掘,我意识到我的应用程序抛出的任何异常都被静默记录,不会导致测试失败。这是 Rails 中的故意行为还是听起来像是我设置了错误?
编辑:我认为问题可能是 Rails 捕获并处理异常(以便在从浏览器发送请求时它可以呈现熟悉的堆栈跟踪页面)。我明白为什么这在环境中很有用development
,但在环境中肯定不行test
......?