2017-12-29 75 views
0

私が知っている場所をトレースすることはできませんが、通常はメソッドFooのテストを書く場合、対応するテストの名前はTestFooとなります。Goの非公開関数の命名規則をテストします

たとえば、fooのように、報告されていない関数をテストする場合、テストの名前はどのようにする必要がありますか?

私の質問は、JetBrains IDE for Goは、非ポート関数のテストを生成するように求められたら、Test_fooのようなものを生成するという事実に由来します。

あなたはFooを持っており、それは、同じパッケージにアンエクスポートcounterpat fooだ場合、あなたが何らかの形で彼らのために異なるテスト(少なくともジャンプのためのIDEで機能をテストするため)にしたいと思いますので、この動作は、感覚を持つことができます。

未登録の関数の後に名前を付けるテストには何らかの規則がありますか?

ところで:

フォームxxxは任意の英数字でき

func TestXxx(*testing.T)

の任意の関数:ゴーtestingパッケージの ドキュメントは、それがある場合は、テストが実行されていることを、言います文字列(ただし、最初の文字は[az]にあってはいけません)、テストルーチンを識別するためのものです。

つまり、名前にアンダースコアのあるテストはgo testで実行しないでください。しかし、我々はすべて、そのようなテストはうまく動作することを知っています。

1)の仮定、テストfunciton名に許可されているアンダースコア:これで

+2

'_'' [-z]は 'していないので、私は混乱が' Xxx'部分は英数字でなければならないことがあっ – JimB

+0

@JimB、ドキュメントも言って、何であるかわかりません。アンダースコアは英数字ではありません。したがって、私の質問。多くのプロジェクトが命名ガイドラインに違反しているとは信じがたいですが、デファクト命名規則(何もないと思われます)の記述は見つかりませんでした。 – edio

答えて

0

私の最初の混乱は2つのことに由来しました。慣例がある(私がしたい:この仮定は)この

2行う主要なオープンソースプロジェクトのトンJetBrainsのアイデアは、アンダースコア

自分の質問への応答を含む名前でテストを生成しているという事実を、バックアップしましたむしろ、それはGoogleのガイドラインです)、多くのプロジェクトが違反しています。アンダースコアはテスト名に使用しないでください。

私は自分の質問を締め切りにして投票し、JetBrains bugtrackerでバグレポートを作成しました。 https://youtrack.jetbrains.com/issue/GO-5185