![](/img/trans.png)
[英]Python raising _ExpectedFailure for unittests with @unittest.expectedFailure
[英]python: How can I test for @unittest.expectedFailure for a specific type of error?
考虑这个测试功能
@unittest.expectedFailure
def test_add_existing_user(self):
user = User('test_add_existing_user', 'welcome')
db.session.add(user)
db.session.commit()
self.assertEquals(1, len(User.query.all()))
db.session.add(User(user.email, 'welcome'))
db.session.commit()
该测试将失败,并出现IntegrityError
因为用户电子邮件列具有unique=True
该测试工作正常,但是我需要检查测试遇到的错误是IntegrityError
,是否可以测试/验证引发的错误?
因为错误可能在执行最后一条语句之前就发生了,所以我们的测试中会出现误报
您可以使用self.assertRaises
来确保引发特定错误。
def test_add_existing_user(self):
"""
Checks that unique constraints return an IntegrityError.
"""
user = User('test_add_existing_user', 'welcome')
db.session.add(user)
db.session.commit()
self.assertEquals(1, len(User.query.all()))
db.session.add(User(user.email, 'welcome'))
self.assertRaises(IntegrityError, db.session.commit)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.