AWS S3バケットへのファイルアップロードが成功した場合、単体テストを行う最良の方法は何でしょうか?ユニットテストファイルをAWS S3にアップロード
今、私は次のことをやっている:
[Test]
public void UploadFileToAWS()
{
// Arrange
var bucket = "bucketName";
var keyName = "test_upload.txt";
var originalFile = new FileStream(@"C:\test.txt", FileMode.Open, FileAccess.Read);
// Act
var aws = new AmazonWebServicesUtility(bucket);
var awsUpload = aws.UploadFile(keyName,originalFile);
// Assert
Assert.AreEqual(true, awsUpload);
}
の方法UploadFile()がAWSにアップロードするのFileStreamを使用してAWS documentationから取られています。
このアプローチについて私が気に入らないのは、ローカルファイル(C:\ test.txt)が必要なことです。バージョンコントロールを介して共有するとこのユニットテストは機能しません。
このユニットテストを変更してローカルファイルに依存しないようにするにはどうすればよいですか?
System.IO.Path.GetTempPath()
を使用してアップロードして単体テストの比較として使用する一時的なテキストファイルを作成することは意味がありますか?
私はユニットテストにかなり新しいですので、私はあなたが
はどうもありがとうございました:-)に私を指すことができ、任意の方向のために幸せです!
なぜあなたはファイルストリームに依存することなく、独自の 'Stream'を作成することはできません(例:のhttp:/ /stackoverflow.com/a/1879470/1663001)?あなたはそれをダウンロードしてテストすることができ、既知の値も含まれています。 – DavidG
素晴らしい!それはまさに私が探していたものです。ありがとうDavidG :-) – jrn