草庐IT

test_key

全部标签

testing - 如何用 Go 测试这个简单的方法?

我正在编写一些单元测试,但我一直在为以下方法编写测试:func(database*Database)FindUnusedKey()string{count:=0possibleKey:=helpers.RandomString(helpers.Config.KeySize)fordatabase.DoesKeyExist(possibleKey){possibleKey=helpers.RandomString(helpers.Config.KeySize+uint8(count/10))count++}returnpossibleKey}我想要一个测试,其中helpers.Rando

unit-testing - 我可以期望(要求)go 测试失败吗?

在我使用的其他测试框架中,当编写测试助手时,能够自动测试它们是很好的,即测试它们是否通过以及是否失败。让我使用以下帮助程序(实际上要复杂得多):funcIsRedirect(t*testing.T,codeint){assert.True(t,code>=300)assert.True(t,code当然,我可以写:funcTestIsRedirect(t*testing.T){IsRedirect(t,http.StatusSeeOther)}但我也想写这样的东西:funcTestNotRedirect(t*testing.T){t.RequireFailure()IsRedirect

unit-testing - 我可以期望(要求)go 测试失败吗?

在我使用的其他测试框架中,当编写测试助手时,能够自动测试它们是很好的,即测试它们是否通过以及是否失败。让我使用以下帮助程序(实际上要复杂得多):funcIsRedirect(t*testing.T,codeint){assert.True(t,code>=300)assert.True(t,code当然,我可以写:funcTestIsRedirect(t*testing.T){IsRedirect(t,http.StatusSeeOther)}但我也想写这样的东西:funcTestNotRedirect(t*testing.T){t.RequireFailure()IsRedirect

linux - 从 Go 程序中读取媒体 key

我正在编写一个媒体跨平台分布式媒体播放器,用于我自己的网络。当前版本分为三/四部分:保存音频文件的NAS。保存有关文件信息的元数据服务器。一个HTML/JS客户端,允许操作元数据服务器和排队媒体:玩家守护进程。我的问题出在第4部分。播放器没有用户界面,也不需要用户界面。它将通过来自客户端的网络命令和监听其当前主机上的媒体key来控制。播放器守护进程需要在Windows和Linux上工作,但我似乎无法找到一种方法(任何方式)在任一操作系统上读取这些key。我所知道的大多数读取键盘的方式根本不会读取这些键。 最佳答案 在几位评论者的帮助

linux - 从 Go 程序中读取媒体 key

我正在编写一个媒体跨平台分布式媒体播放器,用于我自己的网络。当前版本分为三/四部分:保存音频文件的NAS。保存有关文件信息的元数据服务器。一个HTML/JS客户端,允许操作元数据服务器和排队媒体:玩家守护进程。我的问题出在第4部分。播放器没有用户界面,也不需要用户界面。它将通过来自客户端的网络命令和监听其当前主机上的媒体key来控制。播放器守护进程需要在Windows和Linux上工作,但我似乎无法找到一种方法(任何方式)在任一操作系统上读取这些key。我所知道的大多数读取键盘的方式根本不会读取这些键。 最佳答案 在几位评论者的帮助

unit-testing - 如何正确测试调用其中另一个函数的处理程序

我正在测试看起来像这样的PostUser函数(为简单起见省略了错误处理):funcPostUser(env*Env,whttp.ResponseWriter,req*http.Request)error{decoder:=json.NewDecoder(req.Body)decoder.Decode(&user)iflen(user.Username)30{returnStatusError{400,errors.New("usernamesneedtobemorethan2charactersandlessthan30characters")}}emailRe:=regexp.Mus

unit-testing - 如何正确测试调用其中另一个函数的处理程序

我正在测试看起来像这样的PostUser函数(为简单起见省略了错误处理):funcPostUser(env*Env,whttp.ResponseWriter,req*http.Request)error{decoder:=json.NewDecoder(req.Body)decoder.Decode(&user)iflen(user.Username)30{returnStatusError{400,errors.New("usernamesneedtobemorethan2charactersandlessthan30characters")}}emailRe:=regexp.Mus

unit-testing - Golang 模拟函数被调用两次

我正在编写用于测试main.go的单元测试,并在函数内部调用Get函数(DeviceRepo.Get())两次,然后我想模拟返回不同的Get函数,但我可以在第一次模拟时模拟它调用了,所以我不知道如何在第二次模拟Get函数?main.go:typeDeviceInterfaceinterface{}typeDeviceStructstruct{}varDeviceReporepositories.DeviceRepoInterface=&repositories.DeviceRepoStruct{}func(d*DeviceStruct)CheckDevice(familynamestr

unit-testing - Golang 模拟函数被调用两次

我正在编写用于测试main.go的单元测试,并在函数内部调用Get函数(DeviceRepo.Get())两次,然后我想模拟返回不同的Get函数,但我可以在第一次模拟时模拟它调用了,所以我不知道如何在第二次模拟Get函数?main.go:typeDeviceInterfaceinterface{}typeDeviceStructstruct{}varDeviceReporepositories.DeviceRepoInterface=&repositories.DeviceRepoStruct{}func(d*DeviceStruct)CheckDevice(familynamestr

Diffie-Hellman Key Agreement Protocol 资源管理错误漏洞(CVE-2002-20001)

资源管理错误漏洞(CVE-2002-20001)修复项目在等保漏洞扫描时扫描出来了“资源管理错误漏洞”,实操修复Diffie-HellmanKeyAgreementProtocol是一种密钥协商协议。它最初在Diffie和Hellman关于公钥密码学的开创性论文中有所描述。该密钥协商协议允许Alice和Bob交换公钥值,并根据这些值和他们自己对应的私钥的知识,安全地计算共享密钥K,从而实现进一步的安全通信。仅知道交换的公钥值,窃听者无法计算共享密钥。Diffie-HellmanKeyAgreementProtocol存在安全漏洞,远程攻击者可以发送实际上不是公钥的任意数字,并触发服务器端DHE