Каким будет лучший способ модульного теста, если загрузка файла в ковш 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 documentation, используя FileStream для загрузки в АМС.
Что мне не нравится в этом подходе, так это то, что ему нужен локальный файл (C: \ test.txt) - поэтому этот модульный тест не будет работать, если он будет использоваться с помощью контроля версий.
Как я могу изменить этот модульный тест, чтобы он не полагался на локальный файл?
Было бы целесообразно использовать System.IO.Path.GetTempPath()
для создания временного текстового файла, который я загружаю и использую для сравнения в модульном тесте?
Я довольно новый для модульных тестов, так что я рад за любое направление вы можете указать мне :-)
Большого спасибо!
Почему вы не можете создать свой собственный 'Stream', не полагаясь на поток файла (например, HTTP://stackoverflow.com/a/1879470/1663001)? Таким образом, вы можете загрузить его и проверить, что он содержит известное значение. – DavidG
Отлично! Это именно то, что я искал. Спасибо DavidG :-) – jrn