异常测试失败

时间:2015-09-29 17:02:49

标签: python django unit-testing testing django-testing

当我保存用户模型时,我想检查它是否有用户名。 因此我写了<form action="checkout.php" method="post" > <input type="hidden" name ="classmap" value="<?php include('db.php'); $origin = $_POST['origin']; $class = $_POST['class']; $daten = $_POST['daten']; $result = mysql_query("SELECT * FROM route WHERE route LIKE '%$origin%' AND type LIKE '%$class%' AND date LIKE '%$daten%' "); while($row = mysql_fetch_array($result)) { echo $row['type']; } ?>"> </form>

pre_save

现在在我的测试方法中,我想测试这个例外:

@receiver(pre_save, sender=User)
def validate_user(sender, instance, **kwargs):
    if len(instance.username) <= 5: raise Exception("Username too short")

测试失败。为什么呢?

1 个答案:

答案 0 :(得分:1)

assertRaises是一种特殊的例外 - 作为第二个参数,你应该传递一个可调用的

  

assertRaises(exception, callable, *args, **kwds)

换句话说,请勿拨打u.save()

self.assertRaises(Exception, u.save)

此外,您应该考虑使用自定义异常或使用内置的Django验证错误,而不是提升和捕获广泛的Exception