Ran*_*dom 37 testing junit unit-testing mocking mockito
我想知道Mockito是什么?
它是支持Junit还是编写Junit测试用例的环境?
有人可以解释一下Junit和Mockito之间的区别吗?
Gho*_*ica 31
JUnit是一个框架,可以帮助编写和运行单元测试.
Mockito(或任何其他模拟工具)是您专门用于有效编写某种测试的框架.
单元测试的一个核心方面是,您希望将"被测试的课程"与世界上任何其他课程隔离开来.为了做到这一点,你经常需要创建"测试双打",你提供给"被测试的类"的对象.你可以手动创建所有那些"测试双打"; 或者你使用一个模拟框架,使用反射技术为你生成某个类的对象.有趣的是,有些人主张永远不要使用模拟框架; 但老实说:我无法想象这样做.
换句话说:你绝对可以在不使用模拟框架的情况下使用JUnit.反方向也是如此; 但实际上,除了单元测试之外,你想要将Mockito用于其他任何事情的原因并不是很多.
Tar*_*n A 13
外行人的解释与示例
JUnit 用于测试源代码中的 API。为了在 JUnit 中测试 API,有时我们可能需要数据类。为了创建它们,我们可以使用mockito。
模拟是指创建重复或虚拟对象。
我们可能在项目中使用许多数据类。例如,考虑一个 Student 对象。它可能有大约 10 个参数,如 id、年龄、分数、性别等。但是您有一个 API 可以返回年龄大于 10 的学生列表。因此,为了测试此 API,我们需要创建包含所有 10 个参数的学生对象正确的。这很难。因此,我们只能使用所需的参数来模拟对象。在我们的场景中,我们将仅使用年龄作为参数来模拟学生对象。
Student student1=mock(Student.class);
when(student1.getAge()).thenReturn(20);
Student student2=mock(Student.class);
when(student2.getAge()).thenReturn(8);
Run Code Online (Sandbox Code Playgroud)
因此,以上 2 个对象可以添加到列表中,并可以传递给 API 来测试 API 是否返回年龄大于 10 的学生。
小智 7
JUnit是用于编写测试的Java库(提供对运行测试和不同额外帮助程序的支持 - 如设置和拆卸方法,测试集等).是的Mockito使使用编写测试库嘲讽的做法.
在这里看一篇关于模拟与非模拟测试的好文章:http://martinfowler.com/articles/mocksArentStubs.html
| 归档时间: |
|
| 查看次数: |
25432 次 |
| 最近记录: |