Я тестирую метод с FakeItEasy поддельный объект. Поддельный объект - MemoryStream.FakeItEasy объект установки не возвращается в методе тестирования
[TestFixture]
public class ServerClientTests
{
private IWebClient webClient;
private ServerClient serverClient;
[SetUp]
public void Setup()
{
webClient = A.Fake<IWebClient>();
serverClient = new ServerClient(webClient);
var responseStreamBytes = Encoding.Default.GetBytes("OK");
var responseStream = new MemoryStream();
responseStream.Write(responseStreamBytes, 0, responseStreamBytes.Length);
responseStream.Seek(0, SeekOrigin.Begin);
var response = A.Fake<WebResponse>();
A.CallTo(() => response.GetResponseStream()).Returns(responseStream);
var request = A.Fake<WebRequest>();
A.CallTo(() => request.GetResponse()).Returns(response);
A.CallTo(() => webClient.GetRequest("http://localhost:8080/myserver")).Returns(request);
}
[Test]
public void Test1()
{
var result = serverClient.GetRequest("http://localhost/myserver");
Assert.AreEqual(2, result.Length);
}
}
И это код под тест:
public interface IWebClient
{
WebRequest GetRequest(string url);
}
public class ServerClient
{
private readonly IWebClient client;
public ServerClient(IWebClient client)
{
this.client = client;
}
public Stream GetRequest(string url)
{
return client.GetRequest(url).GetResponse().GetResponseStream();
}
}
Когда я запускаю тест, он дает тест исключение =>Ожидаемое: 2 Но было: 0
я ставлю точку останова в методе установки и тестировании отладки. Я вижу, что метод Fake request GetResponse() возвращает ответ с потоком. Это Длина равна 2.
Но в методе испытания, поток Длина 0.
Есть ли какие-либо настройки о FakeItEasy? Или где я ошибаюсь?
Я не понимаю «есть какие-либо настройки около FakeItEasy?». Если вы имеете в виду документацию, вы можете найти ее на странице https://github.com/FakeItEasy/FakeItEasy/wiki, связанной с [домашней страницей FakeItEasy] (http://fakeiteasy.github.io/). –