编写测试失败的单元测试?

Rob*_*Rob 0 unit-testing

假设我有一个接受用户名和密码的函数,然后它从数据库中检索记录并对该数据执行以下检查

  • 今天的日期超出了日期范围
  • 用户被禁用
  • 进行参数比较

如果这些条件中的任何一个为真,则抛出异常.

显然我想编写我的单元测试来测试他的逻辑,但是如果我做了异常将被抛出并且我的测试将失败,这是不正确的 - 是吗?

Mar*_*ris 6

由于您没有说明您正在使用哪个测试框架,因此我无法详细说明,但框架将允许您将测试标记为期望异常.这将在抛出异常时停止测试失败,并允许您检查异常本身的类型和内容.

另一方面,如果你使用的框架不支持这个(虽然我认为没有),你可以在测试中手动添加try ... catch块,这样异常就不会传播out并导致测试失败.