mock data工具包(mock database)

网友投稿 415 2023-04-30


本篇文章给大家谈谈mock data工具包,以及mock database对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享mock data工具包的知识,其中也会对mock database进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

使用 NodeJs 实现本地接口系统

一个基于node.js的轻量级 API mock服务 。

 

在存放mock数据的文件夹下执行命令启动服务。

如果mock数据文件放在名为 mock-data 的文件夹下,则在 mock-data 文件夹下执行以下命令。

以下命令默认端口为 7777

或者使用自定义端口

服务启动后,访问地址为

在存放mock数据的目录下新建 .json 或者 .js 为后辍的文件。

mock规则示例如下:

如果对同一接口分别创建了 js 和 json 两个mock文件,会优先取 js文件 的数据。

mock文件名必须和API接口的文件名一致,才能将API和mock文件匹配。

示例:

示例:

1) 先安装包

2) 在任意位置新建一个文件夹 mock-test

3) 在 mock-test 目录下新建mock数据文件 test.json ,并添加内容如下:

4) 在 mock-test 目录下面执行命令启动mock服务 (默认端口7777)

5) 打开浏览器,输入以下地址,访问mock文件

请求地址只要以 test 结尾的,都可以访问到上面创建的 test.json 文件

6) 项目中使用

以webpack4为例:

Github仓库源码地址: https://github.com/ahbool/mock123 ,欢迎 +Star

如何使用Mock来测试Files,Database和ContentProviders

首个先我们创建一个应用,功能很简单就是读取该应用目录下的一个txt文件内容,并展示到应用的activity上。
public class MockContextExampleActivity extends Activity {
public final static String FILE_NAME = “myfile.txt”;
private TextView mTv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTv = (TextView) findViewById(R.id.TextView01);
final byte[] buffer = new byte[1024];
try {
final FileInputStream fis = openFileInput(FILE_NAME);
final int n = fis.read(buffer);
mTv.setText(new String(buffer, 0, n-1));
} catch (Exception e) {
mTv.setText(e.toString());
mTv.setTextColor(Color.RED);
}
}
//这里写了个getText方法,测试工程会用到。
public String getText() {
return mTv.getText().toString();
}
运行一下,此时我们的包目录下没有myfile.txt,页面显示的可能是个错误。OK,然后我们创建两个文件。一个名为myfile.txt,一个test.myfile.txt。前者用于应用中显示的文件内容,后者是作为测试Mock调用的。
echo “This is real data” data/data/com.example.aatg.mockcontextexample/files/myfile.txt
echo “This is *MOCK* data” data/data/com.example.aatg.mockcontextexample/files/test.myfile.txt
再次运行下,应该可以看到Activity上显示的是This is real data。
OK,下面开始编写测试代码。我们的目的是测试这个app能够正确读取文件,假设现在我怕是不是开发在代码里写死了“This is real data”这句话(作为测试,有点怀疑精神很正常)。OK,现在我用另外一个文件test.myfile.txt来代替myfile.txt会不会出错。
public class MockContextExampleTest extends ActivityUnitTestCase<MockContextExampleActivity {
private static final String PREFIX = “test.”;
private RenamingDelegatingContext mMockContext;
public MockContextExampleTest() {
super(MockContextExampleActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mMockContext = new RenamingDelegatingContext(getInstrumentation().getTargetContext(), PREFIX);
mMockContext.makeExistingFilesAndDbsAccessible();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testSampleTextDisplayed(){
setActivityContext(mMockContext);
startActivity(new Intent(), null, null);
final MockContextExampleActivity mActivity = getActivity();
assertNotNull(mActivity);
String text = mActivity.getText();
assertEquals(“This is *MOCK* data”, text);
}
}
主要看下RenamingDelegatingContext函数的使用,PREFIX是表示文件或数据库的前缀。另外这里为什么使用getTargetContext方法而不是getContext,后者我们经常在UiTest中使用到。这里其实看下注释就明白了:
//getContext():The instrumentation’s package context.
//getTargetContext(): A Context in the target application.
运行下测试,pass。这说明getText方法返回的string已经是This is *MOCK* data 而不是 This is real data了。这我就可以证明,开发没有写死这段话。以上就是RenamingDelegatingContext函数如何来mock文件的,数据库的使用也是一样的。

关于GO 语言的入门学习 求解答

已经有好多程序员都把Go语言描述为是一种所见即所得(WYSIWYG)的编程语言。这是说,代码要做的事和它在字面上表达的意思是完全一致的。 在这些新语言中,包含D,Go,Rust和Vala语言,Go曾一度出现在TIOBE的排行榜上面。与其他新语言相比,Go的魅力明显要大很多。Go的成熟特征会得到许多开发者的欣赏,而不仅仅是因为其夸大其词的曝光度。下面我们来一起探讨一下谷歌开发的Go语言以及谈谈Go为什么会吸引众多开发者: 快速简单的编译 Go编译速度很快,如此快速的编译使它很容易作为脚本语言使用。关于编译速度快主要有以下几个原因:首先,Go不使用头文件;其次如果一个模块是依赖A的,这反过来又取决于B,在A里面的需求改变只需重新编译原始模块和与A相依赖的地方;最后,对象模块里面包含了足够的依赖关系信息,所以编译器不需要重新创建文件。你只需要简单地编译主模块,项目中需要的其他部分就会自动编译,很酷,是不是? 通过返回数值列表来处理错误信息 目前,在本地语言里面处理错误的方式主要有两种:直接返回代码或者抛异常。这两种都不是最理想的处理方式。其中返回代码是非常令人沮丧的,因为返回的错误代码经常与从函数中返回的数据相冲突。Go允许函数返回多个值来解决这个问题。这个从函数里面返回的值,可以用来检查定义的类型是否正确并且可以随时随地对函数的返回值进行检查。如果你对错误值不关心,你可以不必检查。在这两种情况下,常规的返回值都是可用的。 简化的成分(优先于继承) 通过使用接口,类型是有资格成为对象中一员的,就像Java指定行为一样。例如在标准库里面的IO包,定义一个Writer来指定一个方法,一个Writer函数,其中输入参数是字节数组并且返回整数类型值或者错误类型。任何类型实现一个带有相同签名的Writer方法是对IO的完全实现,Writer接口。这种是解耦代码而不是优雅。它还简化了模拟对象来进行单元测试。例如你想在数据库对象中测试一个方法,在标准语言中,你通常需要创建一个数据库对象,并且需要进行大量的初始化和协议来模拟对象。在Go里面,如果该方法需要实现一个接口,你可以创建任何对该接口有用的对象,所以,你创建了MockDatabase,这是很小的对象,只实现了几个需要运行和模拟的接口——没有构造函数,没有附件功能,只是一些方法。 简化的并发性 相对于其他语言,并发性在Go里面显得更加容易。把‘go’关键字放在任意函数前面然后那个函数就会在其go-routine自动运行(一个很轻的线程)。go-routines是通过通道进行交流并且基本上封锁了所有的队列消息。普通工具对相互排斥是有用,但是Go通过使用通道来踢掉并发性任务和坐标更加容易。 优秀的错误消息 所有与Go相似的语言,自身作出的诊断都是无法与Go相媲美的。例如,一个死锁程序,在Go运行时会通知你目前哪个线程导致了这种死锁。编译的错误信息是非常详细全面和有用的。 其他 这里还有许多其他吸引人的地方,下面就一概而过的介绍一下,比如高阶函数、垃圾回收、哈希映射和可扩展的数组内置语言(部分语言语法,而不是作为一个库)等等。 当然,Go并不是完美无瑕。在工具方面还有些不成熟的地方和用户社区较小等,但是随着谷歌语言的不断发展,肯定会有整治措施出来。尽管许多语言,尤其是D、Rust和Vala旨在简化C++并且对其进行简化,但它们给人的感觉仍是“C++看上去要更好”。
【Go语言的优势】
可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。
静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。
语言层面支持并发,这个就是Go最大的特色,天生的支持并发,我曾经说过一句话,天生的基因和整容是有区别的,大家一样美丽,但是你喜欢整容的还是天生基因的美丽呢?Go就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。
内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。
简单易学,Go语言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go关键字是25个,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。
丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大,我最爱的也是这部分。
内置强大的工具,Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难。
跨编译,如果你写的Go代码不包含cgo,那么就可以做到window系统编译linux的应用,如何做到的呢?Go引用了plan9的代码,这就是不依赖系统的信息。
内嵌C支持,前面说了作者是C的作者,所以Go里面也可以直接包含c代码,利用现有的丰富的C库。

Mock测试有哪些应用场景,有没有常用的工具推荐

1、安卓黑盒测试工具
1)包括本身自带的monkey,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中
2) robotium与appium,这些工具用于黑盒的自动化测试。可以在有源码或者只有APK 的情况下对目标应用进行测试。提供了模仿用户操作行为的API,比如在某个控件上点击,输入Text
等等。(推举你可以研究一下这个工具,开源的,我有资料)
2、白盒测试,Android在SDK中集成了JUnit框架。所以,你可以基于JUNIT框架进行安卓的白盒测试代码开发
3、安卓的测试方法其实与web测试方法大多类似,只是多了一些特殊的测试场景,例如-遍历测试、故事驱动、适配测试、电量测试、弱网测试、流量测试等
4、兼容性测试的话,一是可以利用虚拟机保证系统间的兼容性,但更多的还需要依靠真机测试,因为每个真机的上层API使用和渲染是不太一样的
如果你想要什么资料的话或者想一起学习研究的话,可以给我发邮件:test_sunny@hotmail.com

『居善地』接口测试 — 21.Mock功能介绍(二)

当需要调用接口来编写测试用例mock data工具包的时候mock data工具包,此时该接口并没有被实现,这个时候我们就可以用Mock框架来模拟一个接口出来。

使用Mock模拟接口以下功能mock data工具包

编写一个Json文件,接口所有的信息都配置在该json文件中。

把Moco框架的jar包和上面编辑好的Json文件放在同一个文件夹中。

在cmd命令行或者PyCharm的命令行终端执行启动命令。

Moco服务启动后,我们可以使用Requests库请求接口,也可以用浏览器接口。

浏览器访问接口mock data工具包

我们主要是看Json文件怎么写,其他步骤和上面练习一样。

1)、没有参数的get请求

2)、有参数的get请求

说明:请求地址为: api/moco/get/param/demo?name=xiaomingage=18

1)、没有参数的post请求

提示:POST请求就不能用浏览器进行查看mock data工具包了。只能用Request库或者JMeter,Postman等进行查看。(能进行接口调用的工具都可以)

2)、有参数的post请求

调用接口查看结果。

使用的是 request 中的 cookies 属性。

1)、get请求

调用接口查看结果。

2)、post请求

调用接口查看结果。

使用的是 request 中的 headers 属性。

Header 是添加请求头信息,关于请求头信息get请求和post请求都是一样的。

调用接口查看结果。

重定向使用的是和 request 同级的 redirectTo 属性。

使用浏览器进行测试就可以。

Json文件的配置属性说明:

像我们上面练习过的Json文件配置,所有的数据值是固定的,

如: description 、 request 、 response 、 redirectTo 等这些都是固定的,不能修改,修改可能连Moco服务都启动不来。

还有 request 的属性值,如: uri 、 method 、 cookies 、 headers ,也是必须这样写的。

还有GET请求传递参数用 queries 属性,POST请求传递参数用 forms 和 json 属性都可以。(PUT,DELETE请求同Post请求。)

Moco框架原理:

就是把所有接口的数据,包括发送请求的所有数据和返回结果的所有数据,以Json数据格式进行编写。

把这些数据放入Moco框架提供的HTTP或者HTTPS的服务上,就实现了接口数据的模拟。

在使用的时候,我们只要按照json文件中接口配置的信息进行请求即可,如果调用接口传递的数据和Json文件中接口编写要接收的数据不一致,则无法请求成功。

关于mock data工具包和mock database的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 mock data工具包的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mock database、mock data工具包的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 实现接口方法(java中的接口方法如何实现并调用)
下一篇:java接口方法实现(java接口的实现)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~