我想问更多关于测试的概念性问题。我正在使用Mockitos进行单元测试。
我有一种做一堆事情的方法。它内部调用的所有方法都是void方法,而这些方法又会执行其他一些操作。所讨论的方法可以例外或无例外地完成。编写断言语句没有余地,因为它主要调用void方法。另外,我已经为这个类的所有其他方法编写了独立的单元测试。
我的问题是,如果我需要测试覆盖率,我应该为所有方法编写测试用例。但是,我没有找到任何有效的断言我的方法之一。从单元测试覆盖的角度来看,所讨论的方法是一种重要的方法。当我运行我的测试时,我确实在日志中看到方法执行正常,但实际上没有什么可断言的。在这种情况下我该怎么办?
1)保持方法不变,没有任何断言?它仍在检查一切是否按预期工作
2)创建2个预期异常的方法(Negative Testcase)和一个没有断言的常规测试方法。 (这基本上表明我已经涵盖了积极和现实的情况)。我在这里仍然没有任何断言。
这是采取正确的方法还是有更好的方法来处理这个问题?
答案 0 :(得分:5)
如果您没有任何值得断言的内容,则可以尝试验证。
verify(someMock, times(x)).someMethod();
有关Mockito在文档中验证的更多信息:https://mockito.googlecode.com/hg-history/1.5/javadoc/org/mockito/Mockito.html
答案 1 :(得分:2)
为什么没有任何断言?如果你运行你的方法,让A成为宇宙。如果你不运行你的方法,让B成为宇宙。如果A == B然后停止调用该方法,它没有做任何事情。如果A!= B然后断言他们的不同之处是真的。
即,你的方法实际上做什么?这应该是你考试的一部分。