Я новичок в насмешках, поэтому мне нужно немного узнать, как насмехаться с HttpPostedFileBase с Rhino Mocks. Я пытаюсь проверить, что мой ToByteArray() расширение работает, как ожидалось, и это то, что я до сих пор:Mocking HttpPostedFileBase с Rhino Mocks
[Test]
public void Should_return_a_byte_array_with_a_length_of_eleven()
{
// Arrange
var stream = new MemoryStream(System.Text.Encoding.Default.GetBytes("TestContent"));
var httpPostedFileBase = MockRepository.GenerateMock<HttpPostedFileBase>();
httpPostedFileBase.Expect(x => x.InputStream).Return(stream);
httpPostedFileBase.Expect(x => x.ContentLength).Return(11);
// Act
var byteArray = httpPostedFileBase.ToByteArray();
// Assert
Assert.That(byteArray.Length, Is.EqualTo(11));
}
Я могу сказать, что значения приготовьтесь, но к тому времени, мой метод расширения получает HttpPostedFileBase он потерял все это ценности. Любая помощь приветствуется.
/Кристоффер
Спасибо за ваш ответ! Я пробовал это, но я все еще получаю «Ожидаемое: 11 Но было: 0». Я помещаю Replay(), прежде чем я вызову ToByteArray() и VerifyAllExpectations() после ToByteArray(). Я слышал ваш аргумент насчет насмешек, но я не уверен, что я понял, как я могу проверить это по-другому. Как бы вы это сделали? –
Я получил ваши предложения, работая после установки Repeat.Any() на мои ожидания. Однако меня все еще интересует, как вы могли бы сделать это по-другому !? –
Если вы можете создать фактический экземпляр HttpPostedFile (или некоторый вывод HttpPostedFileBase) с некоторым тестовым контентом, вы можете просто вызвать метод расширения. Но я не знаю класс HttpPostedFile достаточно хорошо, чтобы быть на 100% уверенным, что это возможно. – Rytmis