1
這是我的控制器,它返回一個JSON。在Nunit中測試JsonResult的幫助方法
public JsonResult GetValues()
{
return Json(
new{
title = new {
text = "Hello World"
},
xAxis = new {
type = "List of countries"
labels = new {
rotation = 90
}
}
},JsonRequestBehavior.AllowGet);
}
而在我的NUnit的,我測試如下:
[Test]
public void TestGetValues()
{
var controller = new HelloWorldController();
var values = controller.GetValues() as JsonResult;
Assert.IsNotNull(data);
var title = values.Data.GetType().GetProperty("title")
.GetValue(values.Data,null);
var text = title.GetType().GetProperty("text").GetValue(title);
Assert.IsNotNull(text);
}
這工作得很好,但我一定要考的幾個方法有哪些需要我一遍又一遍寫同樣的事情,同樣的性質再次。如何編寫一個幫助器方法,以便我可以傳入控制器和要測試的屬性。 類似這樣的:
var checkText = GetJSonProperties(controllername, "data/title/text");
var checkXais = GetJSonProperties(controllernmae, "data/xAxis/Type");
我該如何做到這一點?
我已經試過這種方法,但我不能以這種方式訪問屬性。它給了我錯誤「對象」不包含'標題'的定義「我也使它可見。 [assembly:InternalsVisibleTo(「HelloWorldTests.dll」)] 任何想法,我可能會做錯嗎? – siddhipur
我假設你使用的是MVC控制器,而不是WebApi控制器,對吧? – Padraic
是的,我正在使用MVC控制器 – siddhipur