想象一下,我们有一个包含不同类型服务器的游戏来代表不同的国家。现在,让我们说游戏只允许用户“与朋友”只与其帐户所在服务器相同的其他玩家。作为一名开发人员,我负责编写一个测试用例,仅用于查看用户是否可以互相“伙伴”互动。然而,这里是我的困境所在,因为我只需测试用户是否可以“伙伴”别人,是否还必须测试用户是否不能在同一个测试用例中添加来自其他服务器的用户,或者应该写在另一个测试用例中,与我正在写的当前测试用例完全分开吗?单元测试应该包含与您正在测试的内容相反的内容吗?
1
A
回答
1
是的,你应该。
您所描述的第一次测试,在那里你只是测试,如果他们能有一哥们,被称为Happy Path testing。你正在测试它的工作原理,没有例外或错误或奇怪的用例。
快乐路径测试是一个良好的开端。其他一切都是真正乐趣开始的地方。
在你的情况,脑海中出现的东西...
- ,如果他们有一个无效的哥们哥们什么?
- 如果他们与已经是他们的朋友的人伙伴呢?
- 如果他们与不是用户的东西伙伴怎么办?
如何将这些应组织是口味的问题。理想情况下,他们都是单独的测试。这使得每个测试的目的都是通过测试名称清晰的,并且避免了测试之间的交互和依赖关系。这里有一个没有特定语言的草图。
describe add_buddy {
test happy_path {
assert user.add_buddy(valid_buddy);
assert user.buddies.contains(valid_buddy);
}
test buddy_on_another_server {
buddies = user.buddies;
assert !buddies.contains(invalid_buddy);
assertThrows {
user.add_buddy(invalid_buddy);
} InvalidBuddy;
assert buddies == user.buddies, "buddy list unchanged";
}
test buddy_with_non_user {
buddies = user.buddies;
assertThrows {
user.add_buddy(non_user);
} ArgumentError;
assert buddies == user.buddies, "buddy list unchanged";
}
test buddy_an_existing_buddy {
assert user.add_buddy(valid_buddy);
# Should this return true? False? An exception?
# You have to decide. I decided false.
assert !user.add_buddy(valid_buddy);
# The buddy is only on the list once.
assert user.buddies.numContains(valid_buddy) == 1;
}
}
之类的东西user
和valid_buddy
可以在setup
程序来创建,或者更好的他们可以通过固定装置发生器如Factory_Girl。
相关问题
- 1. 单元测试应该涵盖什么,不应该包含哪些内容?
- 2. 测试内容与功能
- 3. MS测试单元测试引发的事件内容
- 4. Rails测试单元 - 内容助手
- 5. 单元测试电子邮件内容
- 6. 反向引用的测试内容?
- 7. loadHTML($ str)的测试内容
- 8. 测试NullReferenceException(不测试任何内容)
- 9. 测试与酶反应容器
- 10. 在Django中进行内容类型模型的单元测试
- 11. webpack需要非js的内容在单元测试
- 12. javascript在黄瓜中的测试内容
- 13. 断言与单元测试不兼容?
- 14. 容器内测试与模拟对象进行集成测试
- 15. 酶/反应单元测试
- 16. 单元测试应该知道NHibernate吗?
- 17. 单元测试与早该
- 18. 单元测试应该覆盖压力测试吗?
- 19. CoreDispatcher与反应扩展单元测试
- 20. 如何在单元测试中添加内容在数组
- 21. 我该如何单元测试一个只包含xml内容的请求的servlet
- 22. 单元测试错误信息的内容?
- 23. 如何比较单元测试中的迭代器内容?
- 24. 如何对我的数据库内容进行单元测试?
- 25. 如果您在.h文件中包含某些内容您是否必须再次包含相同的内容?
- 26. 调试反应单元测试(Karma/Jasmine)
- 27. 单元测试建议 - 如何单元测试您的.asmx
- 28. 水豚:测试CSS中的内容PsuedoElements
- 29. Sencha测试验证MessageBox的内容
- 30. 无限长内容长度的测试
谢谢你这么多,这确实清除了很多我的问题,现在我什么我应该做的^ _ ^少不确定性。 – Belphegor