저장소 인터페이스를 조롱하고 있으며 표현식을 사용하고 객체를 반환하는 메소드를 설정하는 방법을 모르십니까? 된 IQueryable 이미 설치와Moq.Mock <T> - 표현식을 사용하는 메소드를 설정하는 방법
가public interface IReadOnlyRepository : IDisposable
{
IQueryable<T> All<T>() where T : class;
T Single<T>(Expression<Func<T, bool>> expression) where T : class;
}
시험 만 설치하는 방법 모르는 T 단일 : 나는
인터페이스 MOQ와 NUnit를 사용하고
이private Moq.Mock<IReadOnlyRepository> _mockRepos;
private AdminController _controller;
[SetUp]
public void SetUp()
{
var allPages = new List<Page>();
for (var i = 0; i < 10; i++)
{
allPages.Add(new Page { Id = i, Title = "Page Title " + i, Slug = "Page-Title-" + i, Content = "Page " + i + " on page content." });
}
_mockRepos = new Moq.Mock<IReadOnlyRepository>();
_mockRepos.Setup(x => x.All<Page>()).Returns(allPages.AsQueryable());
//Not sure what to do here???
_mockRepos.Setup(x => x.Single<Page>()
//----
_controller = new AdminController(_mockRepos.Object);
}
답장을 보내 주셔서 감사합니다. 위 코드에서 오류가 발생합니다. 오류 인수 '1': 'System.Linq.Expressions.Expression'메서드 그룹 '을 변환 할 수 없습니다. > –
Paul
@Paul : 죄송합니다. 나는'()'을 삭제했습니다. 최신 버전을 사용해보십시오. 그러면 제대로 작동합니다. –
답장을 보내 주셔서 감사합니다. 그 말은 당신이 언급 한 것처럼 이상적이지는 않지만 작동합니다! 다시 한번 감사드립니다. – Paul