Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
howtodoinjava-zh
提交
7491b94a
H
howtodoinjava-zh
项目概览
OpenDocCN
/
howtodoinjava-zh
大约 1 年 前同步成功
通知
1
Star
82
Fork
8
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
howtodoinjava-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7491b94a
编写于
6月 06, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-06 11:05:19
上级
e552a370
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
14 deletion
+14
-14
docs/misc/207.md
docs/misc/207.md
+4
-4
docs/misc/208.md
docs/misc/208.md
+1
-1
docs/misc/267.md
docs/misc/267.md
+9
-9
未找到文件。
docs/misc/207.md
浏览文件 @
7491b94a
...
...
@@ -21,9 +21,9 @@ Mockito 是一个开放源代码框架,可让您轻松创建[测试双打](htt
在模拟中,我们通常使用以下类型的测试双打。
*
**
Stub
**
– 是一个对象,该对象对测试期间执行的方法执行具有预定义的返回值。
*
**
Spy**
– 与 Stub
相似的对象,但它们另外记录了它们的执行方式。
*
**
Mock
**
– 是在测试期间对方法执行返回值并记录了对这些执行的期望的对象。 如果模拟人收到了他们不期望的电话,并且在验证过程中对其进行了检查,以确保他们收到了所有期望的电话,它们可能会引发异常。
*
**
存根
**
– 是一个对象,该对象对测试期间执行的方法执行具有预定义的返回值。
*
**
间谍**
– 与存根
相似的对象,但它们另外记录了它们的执行方式。
*
**
模拟
**
– 是在测试期间对方法执行返回值并记录了对这些执行的期望的对象。 如果模拟人收到了他们不期望的电话,并且在验证过程中对其进行了检查,以确保他们收到了所有期望的电话,它们可能会引发异常。
我们可以在测试类中模拟接口和类。 Mockito 还可以在使用 Mockito 注解时帮助产生最少的样板代码。
...
...
@@ -79,7 +79,7 @@ testCompile group: 'org.mockito', name: 'mockito-core', version: '2.23.4'
在敲键盘来编写应用和单元测试之前,让我们快速概述有用的 Mockito 注解。
*
`@Mock`
用于模拟创建。 它使测试类更具可读性。
*
`@Spy`
用于创建
Spy
实例。 我们可以使用它代替
`spy(Object)`
方法。
*
`@Spy`
用于创建
间谍
实例。 我们可以使用它代替
`spy(Object)`
方法。
*
`@InjectMock`
用于自动实例化测试对象,并将所有
`@Mock`
或
`@Spy`
带注解的字段依赖项注入其中(如果适用)。
*
`@Captor`
用于创建参数捕获器
...
...
docs/misc/208.md
浏览文件 @
7491b94a
...
...
@@ -40,7 +40,7 @@ public void saveTest()
#### 1.2 `@Spy`
`@Spy`
注解用于
**创建真实对象并监视该真实对象**
。
Spy
程序可以帮助调用对象的所有常规方法,同时仍可以跟踪每次交互,就像使用模拟一样。
`@Spy`
注解用于
**创建真实对象并监视该真实对象**
。
间谍
程序可以帮助调用对象的所有常规方法,同时仍可以跟踪每次交互,就像使用模拟一样。
请注意,在给定的示例中,由于我们向其中添加了一个键值对,因此映射的大小如何保持为 1。 我们还可以使用它的键取回添加到映射的值。 在模拟实例中是不可能的。
...
...
docs/misc/267.md
浏览文件 @
7491b94a
...
...
@@ -337,11 +337,11 @@ describe("MathUtils", function() {
```
## 7\. 与茉莉花
Spy
一起工作
## 7\. 与茉莉花
间谍
一起工作
茉莉具有双重测试功能,称为
Spy。 Spy 可以对任何函数进行 Stub,并跟踪对该函数和所有参数的调用。 Spy 仅存在于定义它的
`describe`
或
`it`
块中,并且在每个规范后都会被删除。 要使用任何方法创建 Spy
,请使用
`spyOn(object, 'methodName')`
调用。
茉莉具有双重测试功能,称为
间谍。间谍可以对任何函数进行 Stub,并跟踪对该函数和所有参数的调用。 间谍仅存在于定义它的
`describe`
或
`it`
块中,并且在每个规范后都会被删除。 要使用任何方法创建间谍
,请使用
`spyOn(object, 'methodName')`
调用。
有两个匹配器
`toHaveBeenCalled`
和
`toHaveBeenCalledWith`
应该与
Spy 一起使用。 如果调用了 Spy,则
`toHaveBeenCalled`
匹配器将返回 true;否则,将返回 true。 如果参数列表与对 Spy
的任何记录调用匹配,则
`toHaveBeenCalledWith`
匹配器将返回 true。
有两个匹配器
`toHaveBeenCalled`
和
`toHaveBeenCalledWith`
应该与
间谍一起使用。 如果调用了间谍,则
`toHaveBeenCalled`
匹配器将返回 true;否则,将返回 true。 如果参数列表与对间谍
的任何记录调用匹配,则
`toHaveBeenCalledWith`
匹配器将返回 true。
```
java
describe
(
"MathUtils"
,
function
()
{
...
...
@@ -369,9 +369,9 @@ describe("MathUtils", function() {
```
上面的示例本质上是最基本的,您也可以使用
Spy 来验证对内部方法的调用。 例如。 如果在任何对象上调用方法
`calculateInterest()`
,则可能需要检查是否必须在该对象内调用
`getPrincipal()`
,
`getROI()`
和
`getTime()`
。 Spy
将帮助您验证这些假设。
上面的示例本质上是最基本的,您也可以使用
间谍来验证对内部方法的调用。 例如。 如果在任何对象上调用方法
`calculateInterest()`
,则可能需要检查是否必须在该对象内调用
`getPrincipal()`
,
`getROI()`
和
`getTime()`
。 间谍
将帮助您验证这些假设。
当没有要监视的功能时,
`jasmine.createSpy`
可以创建裸露的
Spy。 该 Spy 的行为与其他任何 Spy 一样-跟踪调用,参数等。但是它背后没有实现。 Spy 是 JavaScript 对象,可以这样使用。 通常,这些 Spy
在需要时用作其他函数的回调函数。
当没有要监视的功能时,
`jasmine.createSpy`
可以创建裸露的
间谍。 该间谍的行为与其他任何间谍一样-跟踪调用,参数等。但是它背后没有实现。 间谍是 JavaScript 对象,可以这样使用。 通常,这些间谍
在需要时用作其他函数的回调函数。
```
java
var
callback
=
jasmine
.
createSpy
(
'
callback
'
);
...
...
@@ -392,17 +392,17 @@ tape.play();
```
在
`calls`
属性上跟踪并公开了对
Spy 的每次调用。 让我们看看如何使用这些属性来跟踪 Spy
。
在
`calls`
属性上跟踪并公开了对
间谍的每次调用。 让我们看看如何使用这些属性来跟踪间谍
。
| 追踪属性 | Purpose |
| .calls.any() | 如果根本没有调用过该
Spy
,则返回 false;如果至少发生一次调用,则返回 true。 |
| .calls.count() | 返回
Spy
被调用的次数 |
| .calls.any() | 如果根本没有调用过该
间谍
,则返回 false;如果至少发生一次调用,则返回 true。 |
| .calls.count() | 返回
间谍
被调用的次数 |
| .calls.argsFor(index) | 返回传递给电话号码索引的参数 |
| .calls.allArgs() | 返回所有调用的参数 |
| .calls.all() | 返回上下文(
`this`
),并且参数传递了所有调用 |
| .calls.mostRecent() | 返回上下文(
`this`
)和最近一次调用的参数 |
| .calls.first() | 返回第一次调用的上下文(
`this`
)和参数 |
| .calls.reset() | 清除所有跟踪以发现
Spy
|
| .calls.reset() | 清除所有跟踪以发现
间谍
|
## 8\. 茉莉花教程–最终想法
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录