easy-mock本地搭建以及EasyMock单元测试使用

本文介绍了EasyMock的简单介绍、API参考、如何创建单元测试实例,以及详述了easy-mock的本地搭建过程,包括mac环境下redis和mongodb的安装。同时,文章还列举了解决启动过程中遇到的问题,如npm响应超时、数据库路径问题等。

入门版本,持续学习中

一、简单介绍

API
EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。通过 EasyMock,我们可以方便的构造 Mock 对象从而使单元测试顺利进行。

可视化平台
easy-mock一个在线 Mock 平台,Easy Mock 是一个可视化,并且能快速生成 模拟数据 的持久化服务,
Easy Mock 支持基于 Swagger 创建项目,以节省手动创建接口的时间;

二、API(EasyMock)参考文档

官网:https://easymock.org/
github地址:https://github.com/easymock/easymock

三、简单创建一个单元测试实例

1、开发环境: IDEA+maven+java1.8
2、pom.xml依赖添加

    <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>4.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.objenesis/objenesis -->
    <dependency>
        <groupId>org.objenesis</groupId>
        <artifactId>objenesis</artifactId>
        <version>3.2</version>
        <scope>test</scope>
    </dependency>

3、java代码
mock接口创建
public interface Collaborator {
String documentAdded(String title);
}
业务处理类

public class ClassTested {

private Collaborator listener;

public void setListener(Collaborator listener) {
    this.listener = listener;
}

public void addDocument(String title, String document) {
    String s = listener.documentAdded(title);
    System.out.println(s);


}

}

测试类

import org.easymock.*;
import org.junit.Rule;
import org.junit.Test;

public class ExampleTest extends EasyMockSupport {

@Rule
public EasyMockRule rule = new EasyMockRule(this);

@Mock
private Collaborator collaborator; // 1

@TestSubject
private ClassTested classUnderTest = new ClassTested(); // 2

@Test
public void addDocument() {
    EasyMock.expect( collaborator.documentAdded("New Document")).andReturn("abd");
    replayAll(); // 4
    classUnderTest.addDocument("New Document", "content"); // 5
    verifyAll(); // 6
}

}

四、easy-mock本地化搭建

参考文档:https://my.oschina.net/u/4270180/blog/3425411
步骤如下

1、clone 项目

git clone https://github.com/easy-mock/easy-mock.git

2、安装nodejs、mongodb、redis,以下为在mac上安装项目、如果要在win或linux下安装可参考菜鸟教程

2.1mac环境redis下载安装

redis官网[添加链接描述](https://redis.io/)下载压缩包:

在这里插入图片描述
在终端进入下载后的目录,然后:
解压:tar zxvf redis-5.0.5.tar.gz
移动到:sudo mv redis-5.0.5 /usr/local
切换到:cd /usr/local/redis-5.0.5/
编译测试:make test
编译安装:make install
完成安装

要使用redis,先开启redis服务端,在终端输入redis-server 不要关闭此窗口,并重新打开一个终端,输入redis-cli,打开redis客户端

2.2mac环境mogondb下载安装

下载地址:https://www.mongodb.com/download-center#community
cd /usr/local
1、下载
sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz
2、解压
sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz
3、重命名为 mongodb 目录
sudo mv mongodb-osx-x86_64-4.0.9/ mongodb
安装完成后,我们可以把 MongoDB 的二进制命令文件目录(安装目录/bin)添加到 PATH 路径中:
export PATH=/usr/local/mongodb/bin:$PATH

五、启动过程报错总结

启动mogondb报错找不到db路径解决方法
手动创建数据库路径 sudo mkdir -p /easy-mock
分配权限 sudo chown id -u /easy-mock
启动mongodb(进入bin目录):./mongod --dbpath=/easy-mock

启动redis
进入终端 输入命令redis-server

启动 easy-mock 执行命令npm install报错
ERR! Response timeout while trying to fetch http://registry.npmjs.org/supports-color (over 30000ms)
解决方法
查看当前源: npm config get registry
npm切换源:
切换至淘宝源:npm config set registry=http://registry.npm.taobao.org/
切换至华为源:npm config set registry=https://mirrors.huaweicloud.com/repository/npm/
切换至npm源:​​​​​​​npm config set registry=http://registry.npmjs.org
临时使用:npm --registry https://registry.npm.taobao.org install express

报错 sh: nodemon: command not found
解决方法:npm uninstall nodemon
sudo npm install -g --force nodemon

执行 npm run dev 项目启动但打不开网页,
检查nodejs必须是v8版本
检查mongodb、redis是否启动成功

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值