이 문제를 해결하는 방법을 궁금합니다. 나는 nhibernate를 사용하고 유창하다.단위 테스트 및 nhibernate?
나는이
public class User
{
public virtual int UserId {get; private set;}
}
같은 도메인 클래스이 그것이 자동 생성으로 설정하고 ID 사람들을 중지로 NHibernate에 수행 할 때 규칙 것 같다 있습니다.
이제 단위 테스트를 할 때 문제가 발생합니다.
나는 나의 서비스 레이어를 테스트 할 뿐이라서 조롱 한 레포에는 내 모든 nhibernate 코드가있다. 이 문제가 발생하면 문제가 발생합니다.
User user = repo.GetUser(email);
이것은 사용자 개체를 반환해야합니다.
그래서 지금 문제는 여기에 내가 그 사용자 개체를 만들고 반환 부분에 넣어 필요가
은이
repo.Setup(x => x.GetUser(It.IsAny<string>())).Return(/* UserObject here */)
할 MOQ를 사용하고 싶습니다. 문제는 내가 실제로 서비스 레이어로 (일부 컬렉션에 대한 몇 가지 LINQ를 할 나중에 사용하기 때문에 아이디를 설정할 필요가 자리하고있는 곳
그래서 나는
User user = new User()
{
UserId = 10,
}
같은 것을 할 것입니다 그러나 이것은이다 내 데이터베이스에 있지 않아야 내 repo에 없어야합니다.) 그래서 설정해야하지만 개인 설정이므로 설정할 수 없습니다.
그럼 어떻게해야합니까? 나는 그저 사적인 것을 제거해야합니까 아니면 다른 방법이 있습니까?
덕분에이 그냥 작동, 난 또 다른 확장 방법을 아주. 나는 2 번 증상이있을 수 있습니다. 그냥 많은 것을 조롱해야합니다. 나는 그것을 시험 할 필요가있는 것만을 지키려고 노력하고있다. 예를 들어, 메소드에 사용되지 않았기 때문에 사용자의 userName을 조롱하지 않습니다. autofixture moq를 사용하고 싶습니다. 그러나 실제로 사용하는 방법을 알 수 없으며 실제 튜토리얼이없는 것 같아서 이것이 제가 도움이되는지 아닌지를 판단 할 수 없습니다. – chobo2