首页 / C# / c# – 此测试中有多个断言错误?
c# – 此测试中有多个断言错误?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 此测试中有多个断言错误?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1405字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试测试一个名为Login的方法,当用户和密码参数正确时,设置两个会话变量和三个cookie的值,最后返回true.
我一直在阅读几篇关于单元测试的帖子,但不知怎的,这并没有让我对我的情况完全清楚.我知道每单元测试应该只有一个断言,尽管只要测试一个“逻辑概念”就可以使用多个断言.
登录方法是唯一正确的,如果设置正确的每一个会话变量和cookie,并返回预期值,所以我不知道这是否将是确定一次检查所有这些值(这将导致我可以引用六个断言在单位测试,我觉得有点脏)或者我应该在不同的测试中分别检查每个会话变量和cookie的值.
[TestMethod()]
public void SuccessfulLoginTest()
{
// Arrange.
String username = "foo";
String password = "correct password";
Boolean remember = true;
// Act.
Boolean actual = Login(username, password, remember);
// Assert.
Assert.IsTrue(actual);
Assert.AreEqual("foo", HttpContext.Current.Session["Username"]);
Assert.AreEqual(1, HttpContext.Current.Session["Group"]);
Assert.AreEqual("foo", HttpContext.Current.Response.Cookies["Username"].Value);
Assert.AreEqual("en", HttpContext.Current.Response.Cookies["Lang1"].Value);
Assert.AreEqual("es", HttpContext.Current.Response.Cookies["Lang2"].Value);
}
解决方法:
对我来说也很好看.我不确定你的每个单元测试应该只有一个Assert的概念.这听起来像一个“象牙塔”规则,只是一个愚蠢的IMO.如果您的方法在给定特定输入的情况下设置了一堆变量,那么您应该检查给定该输入的所有变量.编写六个不同的单元测试(以及相关的设置代码)似乎非常低效.
但是当谈到编写软件时,我倾向于倾向于实用主义而不是学术上的“正确性”.
内容总结
以上是互联网集市为您收集整理的c# – 此测试中有多个断言错误?全部内容,希望文章能够帮你解决c# – 此测试中有多个断言错误?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。