私は、メソッドがテキストファイルに書き込むことを確認するために単体テストを作成しようとしています。私の方法は、テキストファイルMovieList.txt
に書き込みます。別のプロセスで使用されているため、ファイルにアクセスできないというエラーが表示され続けました。そこで、別のテキストファイルMovieListTEST.txt
に書き込むためのパラメータを受け入れる方法を変更しようとしましたが、それでもわかりません。誰でもこれを正しく行う方法を知っていますか?テキストファイルへの書き込みの単位テスト
これは、ファイルに書き込むための私のコードです:
のparamで編集public bool WriteMovieListToFile()
{
try
{
FileStream fs = new FileStream("MovieList.txt", FileMode.Append, FileAccess.Write);
StreamWriter textWriter = new StreamWriter(fs);
textWriter.WriteLine(movie.Title);
textWriter.WriteLine(movie.Genre);
textWriter.WriteLine(movie.Actor);
textWriter.WriteLine(movie.Year);
textWriter.Close();
return true;
}
catch (Exception ex)
{
Console.WriteLine("Error:" + ex.Message);
return false;
}
}
:
public bool WriteMovieListToFile(string fileLocation)
{
try
{
FileStream fs = new FileStream(fileLocation, FileMode.Append, FileAccess.Write);
StreamWriter textWriter = new StreamWriter(fs);
これは私のユニットテストコードです:あなたは閉じる必要が
/// <summary>
///A test for WriteMovieListToFile
///</summary>
[TestMethod()]
public void WriteMovieListToFileTest1()
{
Movie movie1 = new Movie("Title", "Genre", "Actor", "Year");
movieSystem.AddMovie(movie1);
movieSystem.WriteMovieListToFile("MovieListTEST.txt");
var fileText = File.ReadLines("MovieListTEST.txt");
Assert.IsTrue(fileText.ToString().Length > 1);
}
FileStreamを終了する必要がありますか? –
'using'ブロックの中の' FileStream'オブジェクトを囲むと、1つの石で2頭の鳥を殺します。 'FileStream'オブジェクトはメモリ内でまだアクティブで、ファイルをロックしています。 – Andrew
@Andrew私は答えが – aguertin