Метод модульных тестов для размера файла более 40 МБ
Мой DTO объявлен как ниже
[MaxLength(maxFileSize, ErrorMessage = "Max Byte Array length is 40MB.")]
public byte[] DocumentFile { get; set; }
Мне нужно написать метод модульного теста для размера файла более 40 МБ.
Как DocumentFile
свойство объявлено как тип массива byte[], я не могу присвоить какое-либо значение DocumentFile
имущество.
Может кто-нибудь, пожалуйста, предложите мне, как я могу написать метод модульного тестирования для этого сценария.
2 ответа
Ни у компилятора, ни во время выполнения нет проблем с массивом размером 40 МБ +1 байт:
namespace so42248850
{
class Program
{
class someClass
{
/* [attributes...] */
public byte[] DocumentFile;
}
static void Main(string[] args)
{
var oversized = new byte[41943041]; /* 40 MB plus the last straw */
try
{
var mock = new someClass
{
DocumentFile = oversized
};
}
catch(Exception e)
{
/* is this the expected exception > test passes/fails */
}
}
}
}
Я бы не рекомендовал такой подход для массового многопользовательского сценария в производстве, так как он может вызвать некоторое нехватку памяти, но для автоматизированного теста это должно быть нормально.
Что-то вроде
[TestMethod]
[ExpectedException(typeof(BlaBlaException), "Exceptiion string")]
public void DocumentFile_set_WhenDocumentFileSetOver40Mb_ShouldThrowExceptionBlaBla {
DocumentFile = new byte [45000000];
}