草庐IT

assert_nothing_raised

全部标签

python - python 的 `assert` 语句有哪些可接受的用例?

我经常使用python的assert语句来检查用户输入并在我们处于损坏状态时快速失败。我知道当python带有-o(optimized)标志时,断言会被删除。我个人不会在优化模式下运行我的任何应用程序,但感觉我应该远离断言以防万一。感觉写起来干净多了assertfilename.endswith('.jpg')比ifnotfilename.endswith('.jpg'):raiseRuntimeError这是断言的有效用例吗?如果没有,python的assert语句的有效用例是什么? 最佳答案 断言应该用于表达不变量或前置条件。在

python - unittest.mock : asserting partial match for method argument

Rubyist在这里编写Python。我有一些看起来像这样的代码:result=database.Query('complicatedsqlwithanid:%s'%id)database.Query被模拟出来,我想测试ID是否正确注入(inject),而不会将整个SQL语句硬编码到我的测试中。在Ruby/RR中,我会这样做:mock(database).query(/#{id}/)但我看不到像在unittest.mock中那样设置“选择性模拟”的方法,至少没有一些毛茸茸的side_effect逻辑。所以我尝试在断言中使用正则表达式:withpatch(database)asMockD

php - 正则表达式的可变长度lookbehind-assertion替代方案

在Python/PHP/JavaScript中是否有支持变长lookbehind-assertion的正则表达式实现?/(?如何编写具有相同含义但不使用lookbehind-assertion的正则表达式?这种类型的断言是否有可能有一天会实现?事情比我想象的要好得多。更新:(1)已经有支持变长lookbehind-assertion的正则表达式实现。Python模块regex(不是标准的re,而是附加的regex模块)支持这样的断言(并且有许多其他很酷的特性)。>>>importregex>>>m=regex.search('(?>>printm.group()bar>>>m=rege

python - python中合适的 'do nothing' lambda表达式?

我有时会发现自己想做占位符“什么都不做”的lambda表达式,类似于说:defdo_nothing(*args):pass但是下面的语法是非法的,因为lambda表达式试图返回冒号后面的任何内容,而你不能返回pass。do_nothing=lambda*args:pass所以我想知道,下面的表达式是否适合替换上面的表达式?do_nothing=lambda*args:None由于上面的do_nothing函数在技术上返回None,是否可以创建一个返回None的lambda表达式用作占位符lambda表达?还是不好的做法? 最佳答案

python - python的设计: why is assert a statement and not a function?

在Python中,assert是一个语句,而不是一个函数。这是一个深思熟虑的决定吗?让assert成为语句(和保留字)而不是函数有什么好处?根据thedocs,assertexpression1,expression2扩展为if__debug__:ifnotexpression1:raiseAssertionError(expression2)文档还说“当在编译时请求优化时,当前的代码生成器不会为断言语句发出代码。”在不知道细节的情况下,似乎需要一个特殊情况才能使这成为可能。但是,一种特殊情况也可用于优化对assert()函数的调用。如果assert是一个函数,你可以这样写:asser

python - 在python中将stdout重定向到 "nothing"

我有一个由足够多的模块组成的大型项目,每个模块都会向标准输出打印一些内容。现在随着项目规模的扩大,没有大的。print语句在标准输出上打印了很多,这使得程序相当慢。所以,我现在想在runtime决定是否将任何内容打印到标准输出。我无法对模块进行更改,因为它们有很多。(我知道我可以将标准输出重定向到一个文件,但即使这样也相当慢。)所以我的问题是如何将标准输出重定向到无,即如何使print语句什么都不做?#Iwanttodosomethinglikethis.sys.stdout=None#thisobviouslywillgiveanerrorasNonetypeobjectdoesno

java - 不明确的方法调用 Assert 中的 assertEquals(Object, Object) 和 Assert 中的 assertEquals(double, double) 匹配 :

我收到以下错误:BothassertEquals(Object,Object)inAssertandassertEquals(double,double)inAssertmatch对于我的Junit测试中的这行代码,请注意getScore()返回一个double:assertEquals(2.5,person.getScore());这是我的断言导入:importstaticorg.junit.Assert.*;这是什么原因造成的,我该如何解决? 最佳答案 您的getScore()返回Double,而不是double。因此编译器很困

java - 为什么启动 StreamingContext 失败并显示 “IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute” ?

我正在尝试使用Twitter作为源执行SparkStreaming示例,如下所示:publicstaticvoidmain(String..args){SparkConfconf=newSparkConf().setAppName("Spark_Streaming_Twitter").setMaster("local");JavaSparkContextsc=newJavaSparkContext(conf);JavaStreamingContextjssc=newJavaStreamingContext(sc,newDuration(2));JavaSQLContextsqlCtx=

java - 为什么 Integer 类的 Integer.valueOf 方法中使用了 assert?

我正在研究Integer类实际上是如何使用缓存对象的,我在Integer.valueOf方法中找到了以下代码:publicstaticIntegervalueOf(inti){assertIntegerCache.high>=127;if(i>=IntegerCache.low&&i我的问题是:assertIntegerCache.high>=127;有什么用assertprovidesaneffectivewaytodetectandcorrectprogrammingerrors.但这是运行时代码,为什么会有人使用断言?在这种情况下它什么时候会抛出AssertionError?

java - JUnit 断言 : make the assertion between floats

我需要比较两个值:一个是字符串,另一个是float所以我将字符串转换为float,然后尝试调用assertEquals(val1,val2)但这未经授权,我猜assertEquals不接受float作为参数。在这种情况下,我的解决方案是什么? 最佳答案 您必须为Floats的断言提供一个增量:Assert.assertEquals(expected,actual,delta)虽然delta是预期和实际之间的最大差异(delta),但两个数字仍被视为相等。Assert.assertEquals(0.0012f,0.0014f,0.00