BDD/TDD 기술을 사용하여 프로젝트를 개발 중이며 과정을 계속 유지하려고 노력 중입니다. 방금 만난 문제는 UnitModelBinder를 테스트하는 단위입니다. mspec을 사용하여 테스트를 작성합니다. 내 사양 컨텍스트를 짓고 있어요 방법은 다음과DefaultModelBinder를 테스트 할 때 NullReferenceException이 발생합니다.
public class EmailMessageInput : IMessageInput
{
public object Recipient
{
get; set;
}
public string Body
{
get; set;
}
}
:
은 내가 바인딩하려는이 같은 클래스가 있습니다. 가짜 폼 컬렉션을 만들고 bindingContext 객체에 채워 넣겠습니다.
Because of =() =>
{
_model = _modelBinder.BindModel(null, _bindingContext);
};
모든 단서가 될 수있는 것을 : 나는 .BindModel이() 내 사양 중 하나 내부에서 실행할 때
public abstract class given_a_controller_with_valid_email_input :
given_a_controller_context
{
Establish additional_context =() =>
{
var form = new FormCollection
{
new NameValueCollection
{
{ "EmailMessageInput.Recipient", "[email protected]"},
{ "EmailMessageInput.Body", "Test body." }
}
};
_bindingContext = new ModelBindingContext
{
ModelName = "EmailMessageInput",
ValueProvider = form
};
_modelBinder = new DefaultModelBinder();
};
protected static ModelBindingContext _bindingContext;
protected static DefaultModelBinder _modelBinder;
}
public abstract class given_a_controller_context
{
protected static MessageController _controller;
Establish context =
() =>
{
_controller = new MessageController();
};
}
마지막으로, 내 스펙은 null 참조 예외가 발생합니다?
필요하면 자세한 정보를 언제든지 물어보십시오. 나는 무언가를 당연하게 생각했을지도 모른다.