小编and*_*ing的帖子

如何测试包含log.Fatal()的Go函数

说,我有以下代码打印一些日志消息.我如何测试是否记录了正确的消息?作为log.Fatal调用os.Exit(1),测试失败.

package main

import (
    "log"
)

func hello() {
    log.Print("Hello!")
}

func goodbye() {
    log.Fatal("Goodbye!")
}

func init() {
    log.SetFlags(0)
}

func main() {
    hello()
    goodbye()
}
Run Code Online (Sandbox Code Playgroud)

以下是假设性测试:

package main

import (
    "bytes"
    "log"
    "testing"
)


func TestHello(t *testing.T) {
    var buf bytes.Buffer
    log.SetOutput(&buf)

    hello()

    wantMsg := "Hello!\n"
    msg := buf.String()
    if msg != wantMsg {
        t.Errorf("%#v, wanted %#v", msg, wantMsg)
    }
}

func TestGoodby(t *testing.T) {
    var buf bytes.Buffer
    log.SetOutput(&buf)

    goodbye()

    wantMsg := "Goodbye!\n" …
Run Code Online (Sandbox Code Playgroud)

testing go

21
推荐指数
5
解决办法
1万
查看次数

如何在DigitalOcean上找到您的私人IP地址?

我正在做关于如何在我的虚拟服务器中设置node.js应用程序的教程,问题是,我无法获取我的私有IP地址.

这是配置问题还是数字海洋中的液滴问题?

到目前为止,我使用ssh连接,安装fail2ban并配置iptable.

curl -w "\n" http://myipAddress/metadata/v1/interfaces/private/0/ipv4/address
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这是我在做教程时所做的配置:如何设置ubuntu环境并使用fail2ban,iptable用于防火墙目的

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N fail2ban-ssh
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j DROP …
Run Code Online (Sandbox Code Playgroud)

ubuntu node.js digital-ocean ubuntu-14.04

4
推荐指数
1
解决办法
2034
查看次数

标签 统计

digital-ocean ×1

go ×1

node.js ×1

testing ×1

ubuntu ×1

ubuntu-14.04 ×1