asp.net-mvc – ASP.NET MVC – 单元测试过度杀毒? (TDD)
|
所以我开始抓住TDD错误,但是我想知道我是否真的做到这一点…我似乎正在写一些测试。 越多的测试越好,肯定,但我有一种感觉,我已经做了。说实话,我不知道我能写多久这些简单的重复性测试。 例如,这些是我的AccountController的LogOn操作: public ActionResult LogOn(string returnUrl)
{
if (string.IsNullOrEmpty(returnUrl))
returnUrl = "/";
var viewModel = new LogOnForm()
{
ReturnUrl = returnUrl
};
return View("LogOn",viewModel);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult LogOn(LogOnForm logOnForm)
{
try
{
if (ModelState.IsValid)
{
AccountService.LogOnValidate(logOnForm);
FormsAuth.SignIn(logOnForm.Email,logOnForm.RememberMe);
return Redirect(logOnForm.ReturnUrl);
}
}
catch (DomainServiceException ex)
{
ex.BindToModelState(ModelState);
}
catch
{
ModelState.AddModelError("*","There was server error trying to log on,try again. If your problem persists,please contact us.");
}
return View("LogOn",logOnForm);
}
很自我解释 然后我有以下测试套件 public void LogOn_Default_ReturnsLogOnView() public void LogOn_Default_SetsViewDataModel() public void LogOn_ReturnUrlPassedIn_ViewDataReturnUrlSet() public void LogOn_ReturnUrlNotPassedIn_ViewDataReturnUrDefaults() public void LogOnPost_InvalidBinding_ReturnsLogOnViewWithInvalidModelState() public void LogOnPost_InvalidBinding_DoesntCallAccountServiceLogOnValidate() public void LogOnPost_ValidBinding_CallsAccountServiceLogOnValidate() public void LogOnPost_ValidBindingButAccountServiceThrows_ReturnsLogOnViewWithInvalidModelState() public void LogOnPost_ValidBindingButAccountServiceThrows_DoesntCallFormsAuthServiceSignIn() public void LogOnPost_ValidBindingAndValidModelButFormsAuthThrows_ReturnsLogOnViewWithInvalidModelState() public void LogOnPost_ValidBindingAndValidModel_CallsFormsAuthServiceSignIn() public void LogOnPost_ValidBindingAndValidModel_RedirectsToReturnUrl() 这是杀了吗我甚至没有显示服务测试! 哪些(如果有的话)可以剔除? TIA, 解决方法这一切都取决于你需要/想要多少覆盖面,多少可靠性是一个问题。以下是您应该问的问题: >这个单元测试是否有助于实现我还没有的功能/代码更改? 关于第三个,我记得当我开始编写单元测试(我知道,不像TDD那样),我会有这样的测试: string expected,actual; TypeUnderTest target = new TypeUnderTest(); target.PropertyToTest = expected; actual = target.PropertyToTest; Assert.AreEqual<string>(expected,actual); 我可以用我的时间做一些更有成效的事情,比如为我的桌面选择一个更好的壁纸。 我推荐这篇文章ASP.net MVC书作者Sanderson: http://blog.codeville.net/2009/08/24/writing-great-unit-tests-best-and-worst-practises/ (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core-mvc – global.json和src文件夹有多重要?
- asp.net-mvc – 为什么Hangfire需要身份验证才能查看仪表板
- 将ASP.NET MVC4应用程序部署到GoDaddy编译器问题
- asp.net – Kestrel和Katana之间的区别
- asp.net-mvc – 将.html文件渲染为ASP.NET MVC中的视图
- asp.net-mvc – 重用MVC arhitecture;有两层UI:ASP.NET MV
- iis-6 – 如何防止IIS覆盖我在ASP.NET中设置的文化?
- asp.net-mvc – 如何在Razor帮助器中使用UrlHelper?
- asp.net – App Settings和connectionStrings配置设置中连接
- Asp.net核心IIS Express.如何查看日志消息?
