我有一些代码,我需要为它编写测试方法。
例如:有一个打开文件的Open方法。但是内部没有代码抛出FileNotFOundException。如果我输入错误的文件名,它将产生COMException。现在我应该测试捕获COMException,还是应该测试捕获FileNotFoundException?当然测试将失败。我不明白如何在这个方向上进行测试。测试驱动的开发看起来很合理,但如何反过来呢?
答案 0 :(得分:1)
我认为您不应该根据自己的代码定制测试 - 我认为您应该测试所需的用例。您的代码应该在什么条件下成功,在哪些条件下它应该失败以及它应该做什么。一旦你知道这些,然后编写测试代码并运行你的单元测试。
在您所说的示例中 - 如果文件将始终存在,那么我认为没有理由检查找不到的文件,但是如果文件有时不会出现 - 会发生什么(不要看代码 - 查看需求),并编写测试以验证实际发生的情况。
当然,您可能会发现代码无法通过许多覆盖其用例的测试 - 您可以在此处管理差异。
答案 1 :(得分:0)
我会说你应该测试两者,看看你是否能以某种方式使代码变得更改以返回FileNotFoundException。