Jump to Navigation

Welcome!

  NullGet是使用Qt编写的,运行于多种平台的GUI界面的多线程多协议断点续传下载软件。  使用NullGet可以轻松下载网络的多种协议的数据流,加快下载速度,支持断点续传,目前支持的协议有:HTTP,HTTPS,FTP,MMS,RTSP。而且它能运行于当前大多数流行的操作系统,包括Windows,Linux,FreeBSD等。     下载NullGet

  NullFXP 是一个基于Qt 4 开发的SFTP/FTP 客户端软件。目前已经实现基本的多文件上下传功能。详细信息查看本站项目说明页面。     下载nullfxp

  我们的目标是打造一个开源的,跨平台的,多线程的,运行稳定的下载软件,另一个就是整理Qt库开发跨平台GUI应用程序的相关资料。欢迎各位朋友对本站开源项目提供意见及建议,欢迎有兴趣的朋友参与本站开源项目,请联系 drswinghead at gmail dot com

golang中使用mock测试API

golang中使用mock测试API

注:本文转自 - 网络

Mock的英文意思是模拟,假的,虚幻的。在程序员的世界里指在单元测试中模拟某个类的方法返回一直想要的值。这是为了只测试单元测试的目标方法内的逻辑,而对该方法调用的其他方法的逻辑置之不理,只对他们进行模拟。

mock测试

就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
mock对象

这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。

Mock的英文意思是模拟,假的,虚幻的。在程序员的世界里指在单元测试中模拟某个类的方法返回一直想要的值。这是为了只测试单元测试的目标方法内的逻辑,而对该方法调用的其他方法的逻辑置之不理,只对他们进行模拟。
mock测试

就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
mock对象

这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。
mock对象使用范畴

API服务中的mock server

mocking机制

调用端与被调用端并行开发的机制。

在被调用端(服务端)未完成开发时,可以提供模拟响应接口API,供调用端(客户端)测试使用。

API mocking模型

  • 客户端mocking,客户端测试代码中模拟server端API接口功能,不执行网络请求。
  • 服务端 mocking,客户端测试代码中发送真实网络请求,server端API接口返回模拟结果。

支持服务端mocking,并不影响客户端mocking的使用。

mocking类型

  • 预设值mocking,被调用端预先设定要返回的值。预设值又分为编译时与运行时两类
  • 0值mocking,返回值为语言提供的0值,如0, "", nil
  • 随机值mocking,返回值为语言提供的相应的随机值,随机整数,随机字符串

调用端想参数设置应该怎么办?

也许可以在服务程序目录再放个预设值json文件好了。

mocking实现

mocking类型,在服务端启动时指定。

单行命令-

iso => dmg

hdiutil convert file.iso -format UDRW -o file.dmg

EFI shell添加菜单项

bcfg boot add fs0:\EFI\refind\refind_x64.efi

grub2 efi

 grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch --recheck --debug
 efibootmgr -v

virtualbox EFI

默认路径(坑):\EFI\BOOT\bootx64.efi

virtualbox共享目录内无法使用链接

VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1

mac os x的linux化改造

brew 包管理

安装一些包还是比较方便的,虽然限制比较大。

有些GUI程序也可以通过brew 来安装。

终端软件:iterm2

iterm2的问题,方向键盘导航响应速度慢。

和konsole相比,还是差太多了。

这应该不是哪个终端软件的问题,而应该是系统问题。

brew install coreutils findutils binutils gawk gnu-sed gnu-tar

brew install git golang python python3

brew install libtool automake autoconf check

brew install emacs-plus

brew install google-chrome thunderbird evernote virtualbox iterm2 skype

brew install Caskroom/cask/osxfuse

brew install Caskroom/cask/xquartz

注:brew 安装还是需要代理服务器的。

golang容器循环时的修改

golang容器循环时的修改

golang中的原生容器有,slice/map/array

它们都支持range循环遍历,而在遍历时,有可能有修改当前容器的需要。

虽然一般不建议这么使用,但是golang也没有禁止这么使用,还是了解一点它的真实情况好些。

map测试

添加key时的测试

 var m1 = make(map[int]int, 0)
 for n := 0; n < 5; n++ {
      m1[n] = 100 + n
 }

 idx := 0
 for key, val := range m1 {
      log.Println(idx, key, val)
      m1[key+10] = m1[key] + 1000
      idx += 1
 }

 log.Println("============")
 idx = 0
 for key, val := range m1 {
      log.Println(idx, key, val)
      idx += 1
 }

得到的结果为:

letsencrypt安装

letsencrypt安装

前言

注意,要在域名已经指向到的服务器上才能安装。

letsencrypt会自动检测不同平台上的apache或者nginx包是否安装,以此生成对应证书。

还是使用mannal方式安装比较好,(git clone源码)。

mannual方式安装

第一步,使用certonly生成证书。

$ git clone https://github.com/letsencrypt/letsencrypt

命令,(先停止nginx服务,该命令执行过程中要使用80/443端口)

自建ngrok服务

自建ngrok服务

源代码

ngrok1.7及以下版本有源代码

ngrok2+版本没有源代码,但有bin版本。不知道是否有什么黑科技呢。

本文以有源代码的ngrok-1.7为例,说明自建ngrok服务的过程。

生成ngrok使用的自签加密证书

ngrokd客户端与ngrok客户端tunnel全程使用tls加密传输,所以要在编译前生成加密证书。

简单的生成脚本,

golang vendor基本使用

golang vendor基本使用

vendor特性的引入

vendor的作用是维护第三方包的另一种形式。

vendor特性的引入会影响import语义。

vendor特性在go1.5中实验性引入,通过GO15VENDOREXPERIMENT=1/0环境变量控制是否启用。

vendor特性在go1.6中正式默认启用,但保留了GO15VENDOREXPERIMENT环境变量。

go1.7中将移除GO15VENDOREXPERIMENT环境变量。

vendor特性的诠释

设计基础

  • 不rewrite gopath
  • go tool来解决
  • go get兼容
  • 可可reproduce building process

诠释原文

GO1.6 cgo使用上的改变

GO1.6 cgo使用上的改变

在新go1.6版本中,针对cgo的指针使用制定了规范,并且体现在了编译器中。
在不规范使用cgo指针的时候,程序将报错退出。

例如,在go1.5中,可以编译返回unsafe.Pointer类型的go导出函数。

swift语言设计中很丑的地方

字符串操作

字符串遍历,字符串位置索引,字符串长度。

for-in关系字

直接用for好了,还专门给array一个关键字的设计真够丑了。

inout参数与指针

指针概念绑定到参数传递上定义吗?

闭包定义

为什么大括号要包住整个闭包呢?中间还插入一个in单词,好拽。

应该还会有其他的吧。

頁面

訂閱 www.qtchina.tk RSS


Main menu 2

by Dr. Radut