小编mil*_*onb的帖子

如何使用Go中的测试包进行测试设置

我如何进行整体测试设置处理,为使用测试包时的所有测试设置阶段?

作为Nunit的一个例子,有一个[SetUp]属性.

[TestFixture]
public class SuccessTests
{
  [SetUp] public void Init()
  { /* Load test data */ }
}
Run Code Online (Sandbox Code Playgroud)

unit-testing go

82
推荐指数
7
解决办法
6万
查看次数

在Go中命名接收器变量'self'误导或良好实践?

我在Go上看到过相当多的博客和视频,据我所知,在编写方法时,没有一个作者使用"self"或"this"作为receiver变量.然而,有关堆栈溢出的问题似乎有很多问题,这让我想到如果将变量命名为"self"这是否具有误导性?

读取方法集的规范并不提供任何证据(在我的解释中).

我似乎记得在某个地方发现它不是真正的自我指针,任何人都可以列出证据或提供任何推理方式,如果有任何问题/陷阱可能会因为将其视为"自我"而产生?

一个简单的例子:

type MyStruct struct {
    Name string
} 
Run Code Online (Sandbox Code Playgroud)

哪种方法更合适,或两者兼而有之?

func (m *MyStruct) MyMethod() error {
    // do something useful
}
Run Code Online (Sandbox Code Playgroud)

要么

func (self *MyStruct) MyMethod() error {
    // do something useful
}
Run Code Online (Sandbox Code Playgroud)

self go

37
推荐指数
4
解决办法
7117
查看次数

Go包是否应该使用log.Fatal以及何时使用?

到目前为止我一直避免使用log.Fatal,但我最近偶然发现了这些问题; 代码覆盖测试使用对数致命.

100个代码覆盖问题中的一条评论说:

...在绝大多数情况下,log.Fatal应该只在main或init函数中使用(或者可能只是某些东西只能直接从它们调用)"

它让我思考,所以我开始查看Go提供的标准库代码.有很多例子,库中的测试代码使用log.Fatal它似乎很好.测试代码之外还有一些例子net/http,如下图所示:

// net/http/transport.go 
func (t *Transport) putIdleConn(pconn *persistConn) bool {
    ...
    for _, exist := range t.idleConn[key] {
        if exist == pconn {
            log.Fatalf("dup idle pconn %p in freelist", pconn)
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果最好的做法是避免使用log.Fatal,为什么在标准库中使用它,我本来希望只返回一个错误.对库的用户来说,os.Exit调用它并不提供应用程序清理的任何机会似乎是不公平的.

我可能是天真的,所以我的问题似乎是一个更好的实践似乎是呼唤log.Panic哪些可以恢复,我理论上长期稳定的应用可能有可能从灰烬中升起.

那么什么是最佳实践说Go应该什么时候应该使用log.Fatal?

go fatal-error

20
推荐指数
2
解决办法
1万
查看次数

将sql dump导入mySQL Workbench时出现错误1305

我正在将一个sql转储文件导入MySQL工作台并继续得到以下错误.这是否意味着其余的文件/记录没有导入或只有xxx.getRates部分没有?我会丢失它的记录吗?有谁知道这可能导致什么?

01:29:31恢复D:\ Projects\CustomerName\Customer Files\xxx-2016-Oct-03.sql运行:mysql.exe --defaults-file ="c:\ users\admini~1\appdata\local\temp\2\tmpru2fjn.cnf"--protocol = tcp --host = localhost --user = root --port = 3306 --default-character-set = utf8 --comments --database = xxx <"D:\ Projects\CustomerName\Customer Files\xxx-2016-Oct-03.sql

第33522行的错误1305(42000):FUNCTION xxx.getRates不存在

使用exitcode 1操作失败01:34:29导入D:\ Projects\CustomerName\Customer Files\xxx-2016-Oct-03.sql已完成1个错误

mysql sql database mysql-workbench

6
推荐指数
1
解决办法
676
查看次数

停止visual studio debug将斜杠放在包含双引号的字符串中

昨天我在Visual Studio 2015中遇到了这种奇怪的行为,我正在制作一个以双引号开头和结尾的字符串.在单步执行代码时,我在结果上盘旋,看到内容,字符串中有反斜杠 - 什么!(见下图).简而言之,我发现变量的调试视图正在显示转义的反斜杠 - 我认为这是误导性的.

有没有人知道是否有办法在Visual Studio中禁用它,以便它只显示值,""bob*""或者不显示字符串类型"bob*"

在此输入图像描述

PS是的我知道,在注意到这种行为之前,多年来使用VS似乎有点新手.图像也没有显示我们的生产代码:)

c# visual-studio-2015

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

C#用户输入int到数组

我要求用户输入5个数字并将其存储到一个数组中,这样我就可以在一个方法中发送值并从每个数组中减去5个数字.当我使用:

for(I=0;I<5;I++) {
int[] val = Console.ReadLine();}
Run Code Online (Sandbox Code Playgroud)

它说我无法将int []转换为int.我的编程中有点生疏.我也不知道如何将数组值从main发送到方法.

c# arrays loops for-loop

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