6

こんにちは、プロパティ ファイルからパラメータ値を読み取り、オブジェクトを返す戻り型ReadPropertyのメソッドを持つクラスがあります。可能であれば、モック ファイルとモック オブジェクトを使用してメソッドをテストするための助けが必要です。ReadPropertyFileMyclassMyclassReadPropertyFileJUnit

これが私のコードです。

import java.io.FileInputStream;
import java.util.Properties;

public class ReadProperty {

    public Myclass ReadPropertyFile(String fileName) {
        Myclass myclass = null;
        String testparam = null;

        FileInputStream fis = null;



        Properties prop = new Properties();
        try {
            fis = new FileInputStream(fileName);
            try {
                prop.load(fis);
                System.out.println("Load Property file : Success !");
            } catch (Exception ex) {
                System.out.println("Load Property file : Exception : " + ex.toString());
            }
            /*
             * loading the properties
             */
            try {
                testparam = prop.getProperty("testparam");
                System.out.println("testparam Type : " + testparam);
            } catch (Exception ex) {
                System.out.println("testparam Type : " + ex.toString());
            }

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("Property file read fail : " + ex.toString());
            System.exit(1);
        }
        Myclass = new Myclass(testparam);
        return Myclass;
    } }
4

1 に答える 1

3

ここで何かをあざける必要はないと思います。プロパティリーダーが期待どおりにファイルにアクセスして読み取ることができるかどうかをテストしたいので、それを正確にテストしてください。通常のプロパティの場合、次のようになります。

@Test
public void shouldReadPropFileFromSingleString() {

    final Properties p = PropertiesLoader
            .loadProperties("propfile");
    assertNotNull(p);
    assertFalse(p.isEmpty());
    for (final Entry<Object, Object> e : p.entrySet()) {
        assertEquals(expectedProperties.get(e.getKey()), e.getValue());
    }
}

あなたの場合、それを適応させることができます:

@Test
public void shouldReadCorrectProp() {

    final MyClass p = ReadProperty
            .readPropertyFile("propfile");
    assertNotNull(p);
    assertEquals(expectedProperty, p);
}

また、sad パスをテストすることもできます。プロパティ ファイルが見つからない場合はどうなるか、フォールバック プロパティは利用可能かなどです。

ところで、プロパティ ファイルの読み取りはメソッドの主な関心事ではないため、メソッド名を変更することをお勧めします。プロパティの取得は重要です。getPropertyさらによいのは、メソッドをとメソッドに分解しreadPropertyFile、最初のメソッドが 2 番目のメソッドを呼び出すようにすることです。そのため、懸念事項の分離に従って、よりクリーンなデザインが得られます。

于 2012-09-06T13:00:08.473 に答える