当前位置: 首页 > news >正文

南阳网站建设南阳网站开发人员的水平

南阳网站建设南阳,网站开发人员的水平,app推广拉新平台,东平房产网您读过数学理论吗#xff1f; 它通常读取如下内容#xff1a; 对于所有a#xff0c;b 0满足以下条件#xff1a;a b a和a b b 通常#xff0c;这些语句更难以理解。 这种陈述有一些有趣之处#xff1a;它适用于相当大#xff08;在这种情况下为无限 它通常读取如下内容 对于所有ab 0满足以下条件a b a和a b b 通常这些语句更难以理解。 这种陈述有一些有趣之处它适用于相当大在这种情况下为无限集合的每个元素或元素组合。 将其与典型测试的陈述进行比较 Testpublic void a_plus_b_is_greater_than_a_and_greater_than_b(){int a 2;int b 3;assertTrue(a b a);assertTrue(a b b);} 这仅是关于我们所讨论的大集合中单个元素的陈述。 不太令人印象深刻。 当然我们可以通过遍历测试或使用参数化测试 来解决此问题 Testpublic void a_plus_b_is_greater_than_a_and_greater_than_b_multiple_values() {ListInteger values Arrays.asList(1, 2, 300, 400000);for (Integer a : values)for (Integer b : values) {assertTrue(a b a);assertTrue(a b b);}} 当然这仍然仅测试了几个值但也变得非常难看。 我们正在使用9行代码来测试数学家在一行中写的内容 这种关系对于任何值ab都应保持的要点在翻译中完全消失了。 但是还是有希望的 JUnit理论 。 让我们看看使用该工具的测试效果 import org.junit.experimental.theories.DataPoints; import org.junit.experimental.theories.Theories; import org.junit.experimental.theories.Theory; import org.junit.runner.RunWith;import static org.junit.Assert.assertTrue;RunWith(Theories.class) public class AdditionWithTheoriesTest {DataPointspublic static int[] positiveIntegers() {return new int[]{1, 10, 1234567};}Theorypublic void a_plus_b_is_greater_than_a_and_greater_than_b(Integer a, Integer b) {assertTrue(a b a);assertTrue(a b b);} } 使用JUnit理论测试分为两个独立的部分提供数据点即用于测试的值的方法以及理论本身。 该理论看起来几乎像一个测试但是它具有不同的注释Theory并且需要参数。 类中的理论将与数据点的每种可能组合一起执行。 这意味着如果我们对测试主题有一个以上的理论则只需声明一次数据点即可。 因此让我们添加以下理论这对于加法而言应该是正确的a b b a因此我们将以下理论添加到我们的类中Theory public void add_is_commutativeInteger aInteger b{assertTruea b b a; } 这就像一种魅力并且可以开始看到它实际上也节省了一些代码因为我们不重复数据点。 但是我们仅使用正整数进行测试而交换属性应适用于所有整数 当然我们的第一个理论仍然只适用于正数 也有一个解决方案 假设 。 假设您可以检查理论的先决条件。 如果对于给定的参数集不正确则该参数集的理论将被跳过。 所以我们的测试现在看起来像这样 RunWith(Theories.class)public class AdditionWithTheoriesTest {DataPointspublic static int[] integers() {return new int[]{-1, -10, -1234567,1, 10, 1234567};}Theorypublic void a_plus_b_is_greater_than_a_and_greater_than_b(Integer a, Integer b) {Assume.assumeTrue(a 0 b 0 );assertTrue(a b a);assertTrue(a b b);}Theorypublic void addition_is_commutative(Integer a, Integer b) {assertTrue(a b b a);} } 这使测试表现力很好。 将测试数据与测试/理论实现分开除了简洁之外还可以带来另一个积极的效果您可能会开始考虑与实际测试内容无关的测试数据。 让我们做到这一点。 如果要测试采用整数参数的方法那么哪些整数可能会引起问题 这是我的建议 DataPointspublic static int[] integers() {return new int[]{0, -1, -10, -1234567,1, 10, 1234567, Integer.MAX_VALUE, Integer.MIN_VALUE};} 在我们的示例中哪个当然会导致测试失败。 如果将正整数添加到Integer.MAX_VALUE则会溢出 因此我们刚刚得知我们目前的理论是错误的 是的我知道这很明显但是请看一下当前项目中的测试。 使用整数的所有测试是否都以MIN_VALUEMAX_VALUE0正值和负值测试 是的是这样。 那更复杂的对象呢 琴弦 日期 收藏 还是领域对象 使用JUnit Theories您可以设置测试数据生成器一次创建所有容易出现问题的场景然后使用这些理论在所有测试中重用这些场景。 这将使您的测试更具表现力并提高发现错误的可能性。 参考来自Java出现日历博客的JCG合作伙伴 Jens Schauder 对JUnit理论的介绍 。 翻译自: https://www.javacodegeeks.com/2013/12/introduction-to-junit-theories.html
http://www.zqtcl.cn/news/472935/

相关文章:

  • 大连网站设计九首选仟亿科技怎么做百度网站会显示图片在旁边
  • 南京营销网站建设wordpress图片购买下载
  • 装修平台网站制作word模板
  • 网站建设捌金手指花总十软文写作技巧
  • 做网站优化有用吗网站开发包括什么软件
  • 在线音乐网站开发现状有什么网站接效果图做的
  • 网站开发自学难吗上海网站建设百度推广公司哪家好
  • 建设部网站官网四库一平台房地产网站大全
  • 做外贸如何建立网站微信信息流广告投放
  • 上海工程建设招投标网站开发购物网站描述
  • 网站系统维护一般多久电商关键字优化
  • 孝感市建设局网站宁波seo网络推广价格
  • 百度商桥网站网络编程技术试题
  • 设计素材网站排名网站建设网站软件有哪些内容
  • 互联网兼职做网站维护wordpress评论微信通知
  • 合肥瑶海区网站建设方案长沙网站 建设推广世云网络
  • wordpress 挂码seo推广公司哪家好
  • 高端 网站设计公司wordpress添加投稿功能
  • 长沙 网站设计 公司价格江苏专业网站建设费用
  • 做的好的手机网站有哪些内容手机怎么做app详细步骤
  • net网站开发参考文献c++能不能作为网页开发语言
  • 我公司让别人做网站了怎么办厦门logo设计公司
  • 闸北专业做网站怎么判断网站优化过度
  • 搭建网站seowordpress重新安装如何做
  • 网站设计优化重庆教育建设有限公司网站
  • 域名注册网站查询手工制作视频教程简单又漂亮
  • 书画院网站源码网站百度指数
  • 网页设计与网站开发第三版课后答案网络运营商是干嘛的
  • wordpress分类目录网站主题自己做营销型网站
  • 简述网站推广的五要素seo排名软件怎么做