私はSpring Bootアプリケーションを作成しました。私はそこに1つの同期メソッドを持っています。このメソッドが同期されているかどうかをテストするJUnitテストを作成したいと思います。ここではクラスとメソッドがあります:同期メソッドのJUnitテスト
public class FileManager {
public synchronized void saveTheFile(String theTemperature, String cityName) throws IOException {
InputStream streamIn = toInputStream(theTemperature, "UTF-8");
OutputStream streamOut = new FileOutputStream(cityName + ".txt", true);
try {
IOUtils.copy(streamIn, streamOut);
} finally {
IOUtils.closeQuietly(streamIn);
IOUtils.closeQuietly(streamOut);
}
}
}
私はこのためにマルチスレッドを使用する必要があると思いますが、私は私の@Testを開始するためにも、どのようにないアイデアを持っていないしました。お知らせ下さい!
唯一の変数は不変のパラメータなので、ここでは何も同期する必要はありません。 'toInputStream'が共有リソースを扱わない限り? – sp00m
ConcurrentUnit https://github.com/jhalterman/concurrentunitを試しましたか? –
私はあなたが望むならあなたのすべてのコードを表示することができますが、すぐに私のアプリはユーザーからリクエスト(都市名)を取得し、この都市の気温を都市名のファイルに保存します。そのアプリは毎晩この都市の気温を取得し、アプリが殺されなくなるまで同じファイルに保存します。同期の考えは、同じ時間に同じ都市を要求できるユーザーがほとんどいないという考えから生まれました。 – Boris