草庐IT

Assert_Raise

全部标签

c++ - 与 static_assert 和 boost::hana 相关的 Clang 编译错误

考虑以下使用-std=c++14在Clang3.8上成功编译的问题。#includenamespacehana=boost::hana;intmain(){constexprautoindices=hana::range();hana::for_each(indices,[&](autoi){hana::for_each(indices,[&](autoj){constexprbooltest=(i==(j==i?j:i));static_assert(test,"error");});});}这个测试非常荒谬,但这不是重点。现在考虑一个替代版本,其中测试直接放在static_asse

c++ - 如何使用谷歌测试抑制由 assert() 引起的运行时错误?

我在C++项目中使用谷歌测试。一些函数使用assert()来检查无效的输入参数。我已经阅读了死亡测试(WhatareGoogleTest,DeathTests)并开始在我的测试用例中使用它们。但是,我想知道是否有一种方法可以抑制断言失败导致的运行时错误。此时,每个失败的断言都会创建一个弹出窗口,我必须在每次运行测试时关闭它。随着我的项目的增长,这种行为越来越多地以一种NotAcceptable方式扰乱工作流程,我倾向于不再测试assert()-assertions。我知道通常可以禁用断言,但从测试框架内部抑制操作系统生成的警告似乎更方便。 最佳答案

c++ - 在可能的情况下扩展为 static_assert 的断言宏?

我有一些通用代码需要对成员函数的结果运行断言。此成员函数可能是constexpr,也可能不是。templatevoidfoo(Tt){assert(t.member_function()==10);}因为t.member_function()可能是一个常量表达式,我想知道是否可以将其视为static_assert这种情况,但在其他情况下默认为正常的assert。这可能吗? 最佳答案 这是一个有点疯狂的解决方案。取消注释Constc;foo(c);行,你会发现它无法编译。这是编译时断言。需要variablelengtharrays,也

iphone - NS_BLOCK_ASSERTIONS 是否同时禁用 NSAssert 和 assert() 调用?

NS_BLOCK_ASSERTIONS是只关闭NSAssert调用还是同时关闭assert()调用。我的应用程序在带有assert(...)语句的Release模式下崩溃。documentation仅说明NSAssert并且不说明assert()调用是否被禁用。有几个与我相关的问题没有得到回答。我在这里链接它们:NS_BLOCK_ASSERTIONSinObjective-CNSAssertvs.assert:Whichdoyouuse,andwhen?HowtoknowifNSAssertisdisabledinreleasebuilds? 最佳答案

php - 为什么我们在 PHP 中使用 assert() 和 assert_options()?

我是使用PHP的新手,正在通过阅读上的文档来学习它。php.net-当前页面为assert()想知道那些断言()和assert_options()函数,但它没有用简单的语言解释我们为什么使用它们以及这些函数的作用。这些函数有什么作用,为什么我们在PHP中使用它们? 最佳答案 Assert()是一个聪明的函数,它的工作原理与我们的打印语句相同,但它们只有在特定条件不匹配时才会起作用。本质上,assert()用于表示“此陈述必须是真的-如果不是,请告诉我”。考虑以下示例:这里我们有两个assert()s,第一个调用断言一个必须等​​于一

phpunit 3.7 : what happened to the @assert annotation?

我有phpunit3.7在3.6,AppendixB,的文档中有一个@assert注释,而在3.7,AppendixB,的文档中没有没有@assert注解officialannouncement提到了一些新注释(以及重新引入以前弃用的旧注释),但没有提到删除@assert。在changelogfor3.7.,@assert在页面上找不到当我使用codesnippet在类上运行我的代码时输出是PHPUnit3.7.1bySebastianBergmann.Time:1second,Memory:4.25MbNotestsexecuted!使用php3.6.2phpunitMyMathCl

安卓 Espresso : How do I assert that a view should not be displayed

这似乎是正确的...onView(withId(R.id.menu_delete)).check(matches(not(isDisplayed())));...但是它抛出这个异常:android.support.test.espresso.NoMatchingViewException:Noviewsinhierarchyfoundmatching:withid:com.just10.android:id/menu_deleteIfthetargetviewisnotpartoftheviewhierarchy,youmayneedtouseEspresso.onDatatoload

android - 如何测试 assert 在 Android 中抛出异常

有没有比这更优雅的方式在Android中执行断言抛出异常?publicvoidtestGetNonExistingKey(){try{alarm.getValue("NotExistingValue");fail();}catch(ElementNotFoundExceptione){}}这样的东西不起作用?!@Test(expected=ElementNotFoundException.class)谢谢,马克 最佳答案 您使用的是junit4测试运行器吗?如果您正在运行junit3测试运行器,@Test注释将不起作用。检查您使用的

android - Glide assert : java. lang.IllegalArgumentException: 你必须在主线程上调用这个方法

有没有人使用Glide从后台线程中获取图像?我不断得到这个断言:java.lang.IllegalArgumentException:Youmustcallthismethodonthemainthread但是根据这个线程,它应该可以工作:https://github.com/bumptech/glide/issues/310但是,我无法让它工作,除非我从主线程调用它。这是我在主线程中尝试做的事情:Glide.get(mContext);loadUserImage(userImageUrl);//wait5secondsbeforetryingagainintimageLoadingT

c++ - 带有 static_assert 的漂亮 sfinae

我正在尝试创建一个事件管理器来注册接收者。为此,我希望能够构造一个具有给定参数的std::function。但是,我希望最终用户能够轻松理解该错误。我考虑过使用SFINAE和依赖于类型的static_assert来执行此操作,但我遇到了麻烦,因为这两个函数在有效输入上变得不明确。此外,我希望用户可以收到多个错误原因。由于有两个失败点(提供无效的仿函数和提供错误的事件类型),我希望总共有3个函数,第一个是正确输入的函数,然后是不正确的输入(而不是有4个函数用于每个状态的组合)。这可以用c++17的ifconstexpr解决,但我的目标平台是c++14,所以需要使用其他方法。我目前的尝试(