Moq 및 단위 테스트를 처음 사용했습니다. 내가 단위 테스트를하고있다 그리고 이것은 다음과 같은 코드 :Moq와의 단위 테스트 인터페이스
내 문제는 시험이 항상 내가 즉, 반환 매개 변수에 넣어 문자열을 반환하는 것입니다, 항상 돌아갑니다private Mock<IServiceAdapter> repository;
[TestInitialize]
public void Initialize()
{
repository= new Mock<IServiceAdapter>();
}
[TestMethod()]
public void SaveTest()
{
//Setup
string Name = "Name1";
string Type = "1";
string parentID = null;
repository.Setup(x => x.Save(Name , Type, parentID)).Returns("Success").Verifiable();
//Do
var result = repository.Object.Save(Name , Type, parentID);
//Assert
repository.Verify();
}
"성공 "또는 내가 그 자리에 쓴 모든 것. 나는 그것이 서비스의 실제 행동이 아니기 때문에 그것이 옳지 않다고 생각합니다. 누구나 내가 테스트하려고하는 "저장"서비스의 실제 동작을 어떻게 미러링 할 수 있는지 알고 있습니다. 따라서 반환 문자열이 서비스 메소드와 다른 경우 테스트가 실패해야합니다.
편집
ServiceAdapter 인터페이스 나는 REST 서비스처럼 호출 할 웹 서비스에 대한 바로 래퍼. 그것은 Web Forms Project입니다.
나는
내가 그것을 작동하게하는 의존성 삽입 (Dependency Injection)와 FakeController 같은 것을 만들어야합니까이 게시물에 뭔가를하고있어?
여기에 뭔가가 없습니다. 컨트롤러가 없습니다 (웹 양식). 나는 그 질문에 더 많은 정보를 넣을 것이다. –
@MorganSoren 컨트롤러는 그 예입니다. 서비스 어댑터를 사용하는 다른 클래스 일 수 있습니다. 나는 웹 폼이 단위 테스트가 불가능한 것으로 생각한다. 보통 테스트 가능한 웹 폼 애플리케이션을 만드는 데 사용되는 MVP 패턴이다. –
@MorganSoren 여기에 대한 질문입니다 [단위 테스트 웹 양식] (http://programmers.stackexchange.com/questions/116089/is-is-possible-to-unit-test-a-web-forms-site) –