一个愚蠢的python逻辑语法错误
2013-09-20 00:36
246 查看
这个事情再次佐证了一个莫名其妙的现象背后一定会有一个愚蠢到无以复加的错误的真理。
写python单元测试的时候发现一个莫名其妙的问题:
这两个函数是用于测试的辅助函数。
测试函数被这样调用:
测试通过。我很无知的认为什么问题都没有了。
直到我很无聊的打算在里头引发一个异常:
运行。。。咦,怎么会依然OK?
干掉这个ValueError,换个位置。。我在这里引发:
这回成功的引发了异常。。
真是个诡异的问题。。。
然后我很无趣的决定在里头随便乱来一下。。。
结果如下:
这极大的颠覆了我的人生观和世界观。。。然后我试了试这个。。
结果如下:
很明显,我敲入的这一堆乱七八糟的东西不是魔力字符,而是那个函数没有运行。
那么为什么没有运行呢?
揭晓正确答案。。。。。。
~~~~~~~悲催的分割线~~~~~~~
正确的调用方法如下:
我的世界终于被久违的纠正了:
祝福你们。。。。
写python单元测试的时候发现一个莫名其妙的问题:
def xmlStandander(self,s): return xml.dom.minidom.parseString(s).toxml(); def assertEqualXMLStruct(self,get,wanted): self.assertEqual( self.xmlStandander(get), self.xmlStandander(wanted) );
这两个函数是用于测试的辅助函数。
测试函数被这样调用:
def testNoneExpect(self): self.assertEqualXMLStruct ( mapToXmlElement("item", {}), '<item></item>' );
测试通过。我很无知的认为什么问题都没有了。
D:\temp\py>xmltest.py ...... ---------------------------------------------------------------------- Ran 6 tests in 0.016s OK
直到我很无聊的打算在里头引发一个异常:
def assertEqualXMLStruct(self,get,wanted): raise ValueError(); self.assertEqual( self.xmlStandander(get), self.xmlStandander(wanted) );
运行。。。咦,怎么会依然OK?
D:\temp\py>xmltest.py ...... ---------------------------------------------------------------------- Ran 6 tests in 0.016s OK
干掉这个ValueError,换个位置。。我在这里引发:
def testNoneExpect(self): raise ValueError(); self.assertEqualXMLStruct ( mapToXmlElement("item", {}), '<item></item>' );
这回成功的引发了异常。。
D:\temp\py>xmltest.py ....E. ====================================================================== ERROR: testNoneExpect (__main__.TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\temp\py\xmltest.py", line 82, in testNoneExpect raise ValueError(); ValueError ---------------------------------------------------------------------- Ran 6 tests in 0.000s FAILED (errors=1)
真是个诡异的问题。。。
然后我很无趣的决定在里头随便乱来一下。。。
def assertEqualXMLStruct(self,get,wanted): asdfasasasdfasgadgfads self.assertEqual( self.xmlStandander(get), self.xmlStandander(wanted) );
结果如下:
D:\temp\py>xmltest.py ...... ---------------------------------------------------------------------- Ran 6 tests in 0.000s OK
这极大的颠覆了我的人生观和世界观。。。然后我试了试这个。。
def testNoneExpect(self): asdfasasasdfasgadgfads self.assertEqualXMLStruct ( mapToXmlElement("item", {}), '<item></item>' );
结果如下:
D:\temp\py>xmltest.py ....E. ====================================================================== ERROR: testNoneExpect (__main__.TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\temp\py\xmltest.py", line 84, in testNoneExpect asdfasasasdfasgadgfads NameError: global name 'asdfasasasdfasgadgfads' is not defined ---------------------------------------------------------------------- Ran 6 tests in 0.016s FAILED (errors=1)
很明显,我敲入的这一堆乱七八糟的东西不是魔力字符,而是那个函数没有运行。
那么为什么没有运行呢?
揭晓正确答案。。。。。。
~~~~~~~悲催的分割线~~~~~~~
正确的调用方法如下:
def testNoneExpect(self): self.assertEqualXMLStruct( mapToXmlElement("item", {}), '<item></item>' );
我的世界终于被久违的纠正了:
D:\temp\py>xmltest.py ....E. ====================================================================== ERROR: testNoneExpect (__main__.TestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\temp\py\xmltest.py", line 84, in testNoneExpect asdfasasasdfasgadgfads NameError: global name 'asdfasasasdfasgadgfads' is not defined ---------------------------------------------------------------------- Ran 6 tests in 0.000s FAILED (errors=1)
祝福你们。。。。
相关文章推荐
- Python脚本运行出现语法错误:IndentationError:unexpected indent
- 关于PYTHON一个低级错误(py文件名和库名重复)
- Python scrapy插入mysql的一个错误TypeError
- 取消for循环后的一个逻辑错误
- python :脚本运行出现语法错误:IndentationError:unexpected indent(缩进问题)
- 又一个新手问题。。语法错误???
- Python初学时的一个小错误:IndentationError: expected an indented block
- JavaScript_个人笔记10_由一个JS语法错误想到的
- 今天碰到的一个极其愚蠢的错误
- Python import容易犯的一个错误
- 记录一个bug,逻辑错误,结果正确,异步代码调试及IE下的渲染机制
- Missing parentheses in call to 'print'——python语法错误
- 快排实现时候的一个逻辑错误
- Python脚本运行出现语法错误:indentationError:indent does not match
- python 语法错误
- Python脚本运行出现语法错误:IndentationError:unexpected indent
- 犯了一个愚蠢的错误
- 更新数据库所有表的某一个指定字段 ,附加对‘将 varchar 值转换为数据类型为 int 的列时发生语法错误’处理方法
- 一个愚蠢的错误
- python mysql cursor的一个bug 出2014错误