Я использую .NET 4, NUnit и Rhino mocks. Я хочу, чтобы модуль тестировал мой репозиторий новостей, но я не уверен, как это сделать. Мой репозиторий новостей - это то, что я в конечном итоге буду использовать для связи с базой данных. Я хочу использовать его для проверки поддельных/фиктивных данных. Не уверен, возможно ли это? Это то, что я в настоящее время:Помощь/советы, необходимые для репозиториев модульных тестов
public interface INewsRepository
{
IEnumerable<News> FindAll();
}
public class NewsRepository : INewsRepository
{
private readonly INewsRepository newsRepository;
public NewsRepository(INewsRepository newsRepository)
{
this.newsRepository = newsRepository;
}
public IEnumerable<News> FindAll()
{
return null;
}
}
Мой модульного тестирования выглядит следующим образом:
public class NewsRepositoryTest
{
private INewsRepository newsRepository;
[SetUp]
public void Init()
{
newsRepository = MockRepository.GenerateMock<NewsRepository>();
}
[Test]
public void FindAll_should_return_correct_news()
{
// Arrange
List<News> newsList = new List<News>();
newsList.Add(new News { Id = 1, Title = "Test Title 1" });
newsList.Add(new News { Id = 2, Title = "Test Title 2" });
newsRepository.Stub(r => r.FindAll()).Return(newsList);
// Act
var actual = newsRepository.FindAll();
// Assert
Assert.AreEqual(2, actual.Count());
}
}
В приведенном выше коде я не уверен, что мне нужно издеваться. Приведенный выше код компилируется, но в графическом интерфейсе NUnit не выполняется о значении конструктора. Я могу только предположить, что это связано с параметром INewsRepository, который мне нужно предоставить в NewsRepository. Я не знаю, как это сделать в тесте. Может кто-то исправить мой модульный тест, чтобы он прошел в графическом интерфейсе NUnit? Может ли кто-то также предоставить некоторую обратную связь, если я правильно реализую свои репозитории?
Будучи новичком насмешливым, есть ли что-нибудь, что мне нужно проверить? Когда мне нужно будет проверить? В чем его цель? Я работал над несколькими проектами исходного кода, и некоторые используют проверку, а некоторые нет.
Если вышеуказанный тест проходит, что это доказывает мне как разработчик? Что другой разработчик должен сделать для моего репозитория, чтобы он не работал в графическом интерфейсе NUnit?
Извините за все вопросы, но они являются новичку вопросы :)
Я надеюсь, что soomeone может помочь мне.
Могу ли я видеть не так ли? У NewsRepository есть то же самое на себе? – Aliostad 2010-12-09 13:36:29
@Aliostad: Что ты имеешь в виду? – 2010-12-09 13:39:15