Mock file.openreadC#

Место общения программистов C#
Anonymous
 Mock file.openread

Сообщение Anonymous »

Я пытаюсь использовать moq и system.io.abstraction для mock file.openread Function ..
Образец:
using System;
using System.IO;
using System.IO.Abstractions;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Moq;

[TestClass]
public class FileServiceTests
{
[TestMethod]
public void OpenRead_ShouldThrowIOException_ThenReturnValidStream()
{
// Arrange
var filePath = "testfile.txt";
var expectedContent = "Hello, World!";
var fileBytes = System.Text.Encoding.UTF8.GetBytes(expectedContent);
var memoryStream = new MemoryStream(fileBytes);

var mockFileSystem = new Mock();
var mockFile = new Mock();

mockFileSystem.Setup(fs => fs.File).Returns(mockFile.Object);

mockFile.Setup(f => f.OpenRead(filePath))
.Returns(memoryStream);

var fileService = new FileService(mockFileSystem.Object);

using var resultStream = fileService.OpenFile(filePath);
using var reader = new StreamReader(resultStream);
var resultContent = reader.ReadToEnd();

// Assert
Assert.AreEqual(expectedContent, resultContent);
}
}

// Example service that uses IFileSystem for OpenRead
public class FileService
{
private readonly IFileSystem _fileSystem;

public FileService(IFileSystem fileSystem)
{
_fileSystem = fileSystem;
}

public Stream OpenFile(string path)
{
return _fileSystem.File.OpenRead(path);
}
}

< /code>
Проблема: < /strong> < /p>
образно FileSystemStream здесь, в «Возврат».
Не уверен, как я могу решить это ..

Подробнее здесь: https://stackoverflow.com/questions/794 ... e-openread

Вернуться в «C#»