1

このテスト機能を検討してください

    @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。発生したエラーをテスト/検証する方法はありますか?

最後のステートメントが実行されるかなり前にエラーが発生する可能性があるため、テストで誤検知が発生する可能性があります

4

1 に答える 1

2

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)
于 2013-03-25T23:14:36.913 に答える