Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python';什么是单元测试?_Python_Unit Testing - Fatal编程技术网

如何使用Python';什么是单元测试?

如何使用Python';什么是单元测试?,python,unit-testing,Python,Unit Testing,我正在运行Python2.6.5,所以我使用unittest2module,它是2.7和3.X中unittest模块的未来端口。我正在执行以下集成测试: def test_hits_constraint_raise(self): obj = Table1(...) self.sess.add(obj) self.sess.flush() # assert condition raises self.assertFailure(IntegrityError

我正在运行Python2.6.5,所以我使用
unittest2
module,它是2.7和3.X中unittest模块的未来端口。我正在执行以下集成测试:

def test_hits_constraint_raise(self):
    obj = Table1(...)
    self.sess.add(obj)
    self.sess.flush()

    # assert condition raises
    self.assertFailure(IntegrityError, sess.add, obj)
相反,它会出错

======================================================================
ERROR: test_hits_constraint_raise (__main__.TestModels)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "test_models.py", line 76, in test4_create_exercise_same_id_constraint_raise
    self.sess.flush()
  File "build/bdist.linux-i686/egg/sqlalchemy/orm/scoping.py", line 114, in do
    return getattr(self.registry(), name)(*args, **kwargs)
      .........
  File "build/bdist.linux-i686/egg/sqlalchemy/engine/default.py", line 331, in do_execute
    cursor.execute(statement, parameters)
IntegrityError: (IntegrityError) column exercise_id is not unique u'INSERT INTO TABLE1 (attribute1_name, attribute2_name) VALUES (?, ?)' ('value1', 'value2')

----------------------------------------------------------------------
Ran 4 tests in 0.531s

FAILED (errors=1)
唯一的方法是使用
@unittest2.expectedFailure
?那辆车开得很好。 但我想知道到底发生了什么样的错误

----------------------------------------------------------------------
Ran 4 tests in 0.513s

OK (expected failures=1)

您可以使用
assertRaises
作为
语句上下文:

with unittest.assertRaises(IntegrityError):
    sess.add(obj)