make loop

This commit is contained in:
chai2010
2015-12-26 20:05:30 +08:00
parent 82ec0c025d
commit e15e88dad7
74 changed files with 207 additions and 207 deletions

View File

@@ -50,11 +50,11 @@ $ go list -f={{.XTestGoFiles}} fmt
{% endraw %}
有時候測試擴展包需要訪問被測試包內部的代碼, 例如在一個爲了避免循環導入而被獨立到外部測試擴展包的白盒測試. 在這種情況下, 我們可以通過一些技巧解決: 我們在包內的一個 _test.go 文件中導一個內部的實現給測試擴展包. 因爲這些代碼隻有在測試時需要, 因此一般放在 export_test.go 文件中.
有時候測試擴展包需要訪問被測試包內部的代碼, 例如在一個爲了避免循環導入而被獨立到外部測試擴展包的白盒測試. 在這種情況下, 我們可以通過一些技巧解決: 我們在包內的一個 _test.go 文件中導一個內部的實現給測試擴展包. 因爲這些代碼隻有在測試時需要, 因此一般放在 export_test.go 文件中.
例如, fmt 包的 fmt.Scanf 需要 unicode.IsSpace 函數提供的功能. 但是爲了避免太多的依賴, fmt 包併沒有導入包含鉅大表格數據的 unicode 包; 相反fmt包有一個叫 isSpace 內部的簡易實現.
爲了確保 fmt.isSpace 和 unicode.IsSpace 函數的行爲一致, fmt 包謹慎地包含了一個測試. 是一個在測試擴展包內的測試, 因此是無法直接訪問到 isSpace 內部函數的, 因此 fmt 通過一個祕密口導了 isSpace 函數. export_test.go 文件就是專門用於測試擴展包的祕密口.
爲了確保 fmt.isSpace 和 unicode.IsSpace 函數的行爲一致, fmt 包謹慎地包含了一個測試. 是一個在測試擴展包內的測試, 因此是無法直接訪問到 isSpace 內部函數的, 因此 fmt 通過一個祕密口導了 isSpace 函數. export_test.go 文件就是專門用於測試擴展包的祕密口.
```Go
package fmt
@@ -62,5 +62,5 @@ package fmt
var IsSpace = isSpace
```
這個測試文件併沒有定義測試代碼; 它隻是通過 fmt.IsSpace 簡單導了內部的 isSpace 函數, 提供給測試擴展包使用. 這個技巧可以廣泛用於位於測試擴展包的白盒測試.
這個測試文件併沒有定義測試代碼; 它隻是通過 fmt.IsSpace 簡單導了內部的 isSpace 函數, 提供給測試擴展包使用. 這個技巧可以廣泛用於位於測試擴展包的白盒測試.