如何开始 C# 单元测试?

发布于 2024-11-06 13:51:59 字数 154 浏览 2 评论 0原文

我有一个简单的任务,根据某些条件显示水果对象。例如,如果我需要显示香蕉,我需要确保其他水果不显示。

为了简单起见,我们假设它们是 4 种可能的水果。我需要测试所有可能的组合吗?

测试 1 是否是香蕉而不是草莓
测试 2 如果香蕉不是苹果
ETC。

I have a simple task to display a fruit object based on certain conditions. For example, if I need to show a banana I need to make sure the other fruits don't display.

For simplicity's sake, let's say they are 4 possible fruits. Do I need to test all the possible combinations?

Test1 if banana not strawberry
Test2 if banana not apple
Etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷︶言冷语的世界 2024-11-13 13:51:59

当然,您需要测试与代码路径一样多的组合。如果没有特定于草莓或特定于苹果的代码,那么您不需要同时测试香蕉与草莓和香蕉与苹果。但是,如果给定水果有不同的代码,您需要测试它以及其他水果之一;如果根据水果的数量有不同的代码,那么您需要测试 0、1、2、N-1、N 和 N+1,无论 N 的最大值是多少。一般来说,您需要进行足够的测试来说服自己额外的测试没有帮助。

You need to test as many combinations as there are code paths, for sure. If there's no strawberry-specific or apple-specific code, then you don't need to test both banana v. strawberry and banana v. apple. But if there's different code for a given fruit, you need to test it, as well as one of the others; and if there's different code based on the number of fruits, then you need to test 0, 1, 2, N-1, N, and N+1, whatever the largest value of N is. In general, you need to test enough to convince yourself additional tests wouldn't help.

走过海棠暮 2024-11-13 13:51:59

取决于几件事。但一种方法是确保当你想要香蕉时你只吃香蕉。我确信类型之间存在差异,因此您可以对此进行断言(例如,断言所有对象的名称仅是“banana”)。

Depends on few things. But one way would be just to make sure you only have banana when you expect a banana. I'm sure there are differences between types, so you can assert on that (eg. assert names of all objects are "banana" only).

这取决于诸如您的代码是否能够一次显示多个水果(意外或其他原因)等因素。最安全的选择是“是的,测试一切!”

This depends on things such as if your code is even capable of displaying more than one fruit at once (by accident or otherwise). The extremely safe choice would be "Yes, test everything!"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文