草庐IT

test_phoenix

全部标签

unit-testing - 检查测试在不运行它们或创建二进制文件的情况下编译

我如何使用Go检查我的测试是否编译而不创建任何二进制文件或执行测试?gobuild./...的测试等效项,它执行此操作但忽略测试。 最佳答案 我使用任何不匹配的正则表达式作为运行标志,比如gotest-runNONE./... 关于unit-testing-检查测试在不运行它们或创建二进制文件的情况下编译,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32162657/

unit-testing - 检查测试在不运行它们或创建二进制文件的情况下编译

我如何使用Go检查我的测试是否编译而不创建任何二进制文件或执行测试?gobuild./...的测试等效项,它执行此操作但忽略测试。 最佳答案 我使用任何不匹配的正则表达式作为运行标志,比如gotest-runNONE./... 关于unit-testing-检查测试在不运行它们或创建二进制文件的情况下编译,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/32162657/

unit-testing - 在测试中覆盖 Go 方法

所以我有这个Client结构,它有一个方法UserByID,它向User的端点发出HTTP请求。我想对该函数进行单元测试,但也不想在函数c.Request中发出实际的HTTP请求。我想用我可以控制的响应和错误来stub该函数。func(cClient)UserByID(idstring)(uUser,errerror){v:=url.Values{}v.Set("id",id)opts:=Request{HTTP:http.Request{Method:http.MethodGet,Form:v,},URL:'some/endpoint/users',}resp,err:=c.Requ

unit-testing - 在测试中覆盖 Go 方法

所以我有这个Client结构,它有一个方法UserByID,它向User的端点发出HTTP请求。我想对该函数进行单元测试,但也不想在函数c.Request中发出实际的HTTP请求。我想用我可以控制的响应和错误来stub该函数。func(cClient)UserByID(idstring)(uUser,errerror){v:=url.Values{}v.Set("id",id)opts:=Request{HTTP:http.Request{Method:http.MethodGet,Form:v,},URL:'some/endpoint/users',}resp,err:=c.Requ

unit-testing - 在 Golang 中进行单元测试时如何测试是否调用了 goroutine?

假设我们有这样一个方法:funcmethod(intrMyInterface){gointr.exec()}在单元测试method中,我们想断言inter.exec被调用了一次且仅调用了一次;所以我们可以在测试中用另一个模拟结构模拟它,这将为我们提供检查它是否被调用的功能:typemockInterfacestruct{CallCountint}func(m*mockInterface)exec(){m.CallCount+=1}在单元测试中:funcTestMethod(t*testing.T){varmockmockInterface{}method(mock)ifmock.Cal

unit-testing - 在 Golang 中进行单元测试时如何测试是否调用了 goroutine?

假设我们有这样一个方法:funcmethod(intrMyInterface){gointr.exec()}在单元测试method中,我们想断言inter.exec被调用了一次且仅调用了一次;所以我们可以在测试中用另一个模拟结构模拟它,这将为我们提供检查它是否被调用的功能:typemockInterfacestruct{CallCountint}func(m*mockInterface)exec(){m.CallCount+=1}在单元测试中:funcTestMethod(t*testing.T){varmockmockInterface{}method(mock)ifmock.Cal

unit-testing - 由于先前的测试用例失败而引发的断言异常

我想不出更好的标题。在下面的代码中,如果rollBackLogger为nil,第一个测试用例将失败,但所有其他测试用例将引发异常。除了使用if语句之外,是否有其他方法可以避免这种情况?我相信这是单元测试中非常常见的情况,assert中应该有一些函数或其他一些方法来避免这种情况。assert.NotNil(rollbackLogger)assert.Equal("Action",rollBackLogger[0].Action)assert.Equal("randompath",rollBackLogger[0].FilePath) 最佳答案

unit-testing - 由于先前的测试用例失败而引发的断言异常

我想不出更好的标题。在下面的代码中,如果rollBackLogger为nil,第一个测试用例将失败,但所有其他测试用例将引发异常。除了使用if语句之外,是否有其他方法可以避免这种情况?我相信这是单元测试中非常常见的情况,assert中应该有一些函数或其他一些方法来避免这种情况。assert.NotNil(rollbackLogger)assert.Equal("Action",rollBackLogger[0].Action)assert.Equal("randompath",rollBackLogger[0].FilePath) 最佳答案

testing - 为什么golang测试包在报告测试失败时用下划线替换空格?

当我运行这个测试失败时:funcTestCaseA(t*testing.T){t.Run("mynamewithspaces",func(t*testing.T){t.Error("someerrormessage")})}然后在输出中修改测试名称(空格改为下划线):---FAIL:TestCaseA(0.00s)---FAIL:TestCaseA/my_name_with_spaces(0.00s)main.go:10:someerrormessageFAIL为什么会这样?这是一个工作示例:https://play.golang.org/p/viZjC60Dazg

testing - 为什么golang测试包在报告测试失败时用下划线替换空格?

当我运行这个测试失败时:funcTestCaseA(t*testing.T){t.Run("mynamewithspaces",func(t*testing.T){t.Error("someerrormessage")})}然后在输出中修改测试名称(空格改为下划线):---FAIL:TestCaseA(0.00s)---FAIL:TestCaseA/my_name_with_spaces(0.00s)main.go:10:someerrormessageFAIL为什么会这样?这是一个工作示例:https://play.golang.org/p/viZjC60Dazg