我在mvc中显示图表。
OR
如何编写测试用例来检查数据。我是MVC的新手
答案 0 :(得分:2)
您将发现编写真正的单元测试很困难,因为您正在实例化MapContext的具体实例。理想情况下,你使用IoC / Dependancy Injection来注入你的MapContext,然后你真的想为它创建一个接口,这样它就可以伪造/嘲笑,否则你不只是测试控制器你#&# 39;重新测试MapContext然后它不再是一个单元测试,而是一个综合测试.....丢失了吗?!
控制器看起来像:
public class HomeController : Controller
{
IMapContext _context;
public HomeController(IMapContext mapContext)
{
_context = mapContext;
}
public ActionResult Index()
{
var x = (from c in _context.Area
select c.Name).ToArray();
var y = (from c in _context.Area
select c.Pin).ToArray();
var bytes = new Chart(width:500, height: 300)
.AddSeries(
chartType: "Column",
xValue: x,
yValues: y)
.GetBytes("png");
return File(bytes, "image/png");
}
}
然后你的单元测试就像(Nunit + Moq):
[TestFixture]
public class HomeControllerTest
{
Mock<IMapContext> _mapContext;
[SetUp]
public void SetUp()
{
_mapContext = new Mock<IMapContext>();
}
[Test]
public void BasicTest()
{
HttpConfiguration configuration = new HttpConfiguration();
HttpRequestMessage request = new HttpRequestMessage();
var homeController = new HomeController(_mapContext.Object);
homeController.Request = request;
var result = homeController.Index();
Assert.IsNotNull(result);
Assert.AreEqual(<somevalue>, result.SomeProperty);
}
}
显然,您需要输入适当的值来测试并将SomeProperty更改为不动产。
进一步阅读将是了解更多关于
的信息修改强>
以下是一些可以帮助您入门的教程
https://msdn.microsoft.com/en-GB/library/dd410597(v=vs.100).aspx
答案 1 :(得分:0)
您可以通过以下步骤开始为yoyr操作方法编写单元测试用例