1

私はアンドロイドのソースコードを見ていましたが、このコードを見つけました。

/**
 * Interface used in {@link #createUniqueFile} instead of {@link File#createNewFile()} to make
 * it testable.
 */
/* package */ interface NewFileCreator {
    public static final NewFileCreator DEFAULT = new NewFileCreator() {
                @Override public boolean createNewFile(File f) throws IOException {
                    return f.createNewFile();
                }
    };
    public boolean createNewFile(File f) throws IOException ;
}

どのようにそれはよりテスト可能ですか?そして、誰かが私をもっと例を見ることができる場所にリダイレクトできますか?

4

2 に答える 2

4

その理由は、テストでNewFileCreatorを、使用されている場所ならどこでも別の実装に置き換えることができるためです。たとえば、データをメモリに保存するだけです。

これは、実際のファイルシステムが存在し、適切な状態にあることを心配することなく、これを使用しているもののロジックをテストできることを意味します。

于 2012-10-22T10:47:55.103 に答える
1

createUniqueFile「テスト可能にする」という表現は、のインスタンスを使用しているように見えるメソッドを指していると思いますNewFileCreator。このメソッドは、標準のJava APIからモックするNewFileCreatorよりもモックする方が簡単なので、単独でテストできると思われます。また、ファイルシステムを台無しにしないテスト用Fileのさまざまな実装を提供することもできます。NewFileCreator

于 2012-10-22T10:48:42.627 に答える