我在理解MVC的单元测试时遇到了一些问题。我有我的模特它看起来像这样:
namespace UnifiedLibrary.Models
{
public class SCPublisherModel
{
[Display(Name = "Title")]
public string Title { get; set; }
[DataType(DataType.MultilineText)]
[Display(Name = "Description")]
public string Description { get; set; }
public bool Conform()
{
if (String.IsNullOrEmpty(Title))
Title = Resources.ULResLocal.Sou.locDefaultTitle;
if (String.IsNullOrEmpty(Description))
{
Description = Resources.ULResLocal.Sou.locDefaultDesc;
}
return true;
}
public bool Validate()
{
if (String.IsNullOrEmpty(Title))
Title = Resources.ULResLocal.Sou.locDefaultTitle;
return true;
}
}
}
public ActionResult Sou(string productID, string locale, string clienttoken, string Title, string Description)
{
ProviderID = (int)Providers.SoundCloud;
locale = Utilities.SetApplicationLocale(locale);
if (String.IsNullOrEmpty(clienttoken))
return RedirectToAction("../Shared/Error");
HttpCookie cookieAuthToken = this.ControllerContext.HttpContext.Request.Cookies[strCookieSoundCloudAuthToken];
if (cookieAuthToken == null)
{
return RedirectToAction("../Login/LoginSoundCloud", new { productID = productID, locale = locale, clienttoken = clienttoken,
Title = Title, Description = Description});
}
// create a model for soundcloud and store all known information
Models.SCPublisherModel model = new Models.SCPublisherModel();
model.Title = Title;
model.Description = Description;
model.Conform();
// create a view based on the updated model
return View(model);
}
我也需要检查这个控件。但我不确定如何。我已经使用了这个单元测试但是我有错。
[TestMethod]
public void SoundCloudTest()
{
// Controllers that rely on App_GlobalResources or App_Local_Resources cannot be unit tested with rewriting these dependencies.
var controller = new PublishController();
// Act
var SCModelTest = new SCPublisherModel()
{
Title = "Test 100",
};
var result = controller.SoundCloud(SCModelTest) as ViewResult;
Assert.AreEqual(result.View, SCModelTest);
}
如果你知道任何文章。你能提供给我吗? 谢谢。
答案 0 :(得分:0)
更改
Assert.AreEqual(result.View, SCModelTest);
为:
Assert.AreEqual(result.Model, SCModelTest);