Questions tagged «assertion»

14
Python断言的最佳实践
assert作为标准代码的一部分而不是仅用于调试目的,是否存在性能或代码维护问题? 是 assert x >= 0, 'x is less than zero' 胜过或坏于 if x < 0: raise Exception, 'x is less than zero' 另外,是否有任何方法可以设置业务规则,例如if x < 0 raise error始终不进行检查,try/except/finally因此在整个代码中的任何时候都x小于0时,都会引发错误,例如assert x < 0在函数的开始处,函数内的任何位置进行设置哪里x变得小于0引发异常?

11
如何使用JUnit Test注释声明异常消息?
我写了一些带有@Test注释的JUnit测试。如果我的测试方法引发了一个已检查的异常,并且我想与该异常一起声明该消息,是否可以使用JUnit @Test注释来做到这一点?AFAIK,JUnit 4.7不提供此功能,但是将来的版本会提供吗?我知道在.NET中,您可以断言消息和异常类。在Java世界中寻找类似的功能。 这就是我要的: @Test (expected = RuntimeException.class, message = "Employee ID is null") public void shouldThrowRuntimeExceptionWhenEmployeeIDisNull() {}

11
何时使用断言以及何时使用异常
在大多数情况下,我将使用异常检查代码中的条件,我想知道何时才是使用断言的适当时间? 例如, Group group=null; try{ group = service().getGroup("abc"); }catch(Exception e){ //I dont log error because I know whenever error occur mean group not found } if(group !=null) { //do something } 您能指出断言如何适合这里吗?我应该使用断言吗? 似乎我从不在生产代码中使用断言,而仅在单元测试中看到断言。我确实知道,在大多数情况下,我可以像上面那样使用异常来进行检查,但是我想知道“专业”地执行异常的适当方法。


8
为什么会出现C malloc断言失败?
我正在实现分而治之多项式算法,因此可以将其对照OpenCL实现进行基准测试,但无法malloc正常工作。当我运行程序时,它会分配一堆东西,检查一些东西,然后将其发送size/2给算法。然后,当我malloc再次点击该行时,它会吐出以下内容: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end …
85 c  gcc  malloc  assertion 


10
AssertEquals 2列表忽略顺序
我认为那应该是一个非常简单的问题。但是不知何故我无法在Google中找到答案。 假设我有2个字符串列表。第一个包含“字符串A”和“字符串B”,第二个包含“字符串B”和“字符串A”(注意顺序不同)。我想用JUnit测试它们,以检查它们是否包含完全相同的字符串。 是否有任何断言可以检查忽略顺序的字符串是否相等?对于给定的示例org.junit.Assert.assertEquals抛出AssertionError java.lang.AssertionError: expected:<[String A, String B]> but was:<[String B, String A]> 解决方法是先对列表进行排序,然后再将它们传递给断言。但是我希望我的代码尽可能简单和干净。 我使用Hamcrest 1.3,JUnit 4.11,Mockito 1.9.5。

11
未充分使用Java断言
我想知道为什么assert关键字在Java中没有得到充分利用?我几乎从未见过使用它们,但是我认为它们是个好主意。我当然更喜欢简洁: assert param != null : "Param cannot be null"; 冗长的 if (param == null) { throw new IllegalArgumentException("Param cannot be null"); } 我怀疑它们没有得到充分利用,因为 他们来得相对较晚(Java 1.4),到那时,许多人已经建立了Java编程风格/习惯 它们默认在运行时关闭
67 java  assertion 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.