我正在開發一個項目使用BDD/TDD技術,我正在盡我所能留住課程。我碰到的一個問題是單元測試DefaultModelBinder。我使用mspec編寫我的測試。NullReferenceException當測試DefaultModelBinder
我有一個這樣的類,我要綁定到:
public class EmailMessageInput : IMessageInput
{
public object Recipient
{
get; set;
}
public string Body
{
get; set;
}
}
這裏是我如何建立我的規格範圍內。我正在構建一個假表單集合並將其填充到一個bindingContext對象中。
Because of =() =>
{
_model = _modelBinder.BindModel(null, _bindingContext);
};
任何線索它可能是:
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();
};
}
最後,當我從裏面我的規格之一執行.BindModel()我的規格拋出一個空引用異常?
如果需要,隨時向我諮詢更多信息。我可能會認爲某件事是理所當然的。