저는 moq 및 유닛 테스트에 초보자입니다. 그래서 나는 그것을 철저히 이해하지 못합니다. 질문이 어리 석다면 용서해주십시오. 다음 시나리오를 이해하도록 도와주세요. ";"유닛 테스트 Throwing "System.NullReferenceException", Moq 및 Nunit 사용
다음은 내 간단한 테스트
[Test]
public void TryMoq() {
var mock = new Mock<IDummyInterface>();
var dummy = new DummyClass(mock.Object);
mock.VerifySet(m => m.Model = It.Is<DummyModel>(mo => mo.MyProperty == "foo"));
}
내가 라인 "i.Model.MyProperty ="foo는 지금에
public class DummyClass
{
public DummyClass(IDummyInterface i) {
i.Model = new DummyModel() ;
i.Model.MyProperty = "foo";
}
}
public class DummyModel
{
public string MyProperty { get; set; }
}
public interface IDummyInterface {
DummyModel Model { get; set; }
}
을 테스트하기 위해 노력하고있어 코드입니다 "System.NullReferenceException"이 발생합니다.
왜 내가 Moq를 사용하는 이유부터 생각합니다.
"DummyClass"의 생성자를 변경하면 이상한 것이 있습니다. 이처럼
public DummyClass(IDummyInterface i)
{
i.Model = new DummyModel() { MyProperty ="foo"};
//i.Model.MyProperty = "foo";
}
시험 패스. 두 번째 경우에도 "foo"의 값을 "bar"로 변경하려고합니다. 테스트가 실패합니다 (이것은 좋은 생각입니다).
나는 단지 무슨 일이 벌어지고 있는지 알고 싶다. 어떻게하면 moq를 사용해 자식 속성을 검증 할 수 있을까요? 해당 객체에 설정하는 것이 기억 모의 원인이됩니다
i.Model = new DummyModel();
: 당신이 그것을 말할하지 않는
좋은 설명 주셔서 감사합니다. 당신의 대답과 함께. 내 문제를 해결하기 때문에 나는 "arneeiri"답장을 좋아했다. :) – Mohit