- 浏览: 227977 次
- 性别:
- 来自: 杭州
文章分类
最新评论
Junit和javadoc的完美结合
<p><span style="font-size: medium;">实际遇到的问题:</span></p>
<p><span style="font-size: medium;">在编写junit的测试代码的时候,需要为每个Case编写注释作者等信息。而执行结果平台也需要知道这些信息,而不是通过查看测试代码来发现这些信息,这就需要在测试执行的时候读取到javadoc的信息。</span></p>
<p><span style="font-size: medium;">本文就是针对这个问题的解决方案</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span style="">首先,由于</span><span lang="EN-US"><span style="font-family: Calibri;">JavaDoc</span></span><span style="">是只能读取紧贴函数的注释,目前我们</span><span lang="EN-US"><span style="font-family: Calibri;">Java</span></span><span style="">代码中都被</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">占据。所以我想到只能修改</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">接口</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span lang="EN-US"><span style="font-family: Calibri;"> </span></span><span style="">于是将</span><span lang="EN-US"><span style="font-family: Calibri;">Junit</span></span><span style="">中</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">接口修改如下:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">@interface</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='background: yellow; color: #646464; font-family: "Courier New";' lang="EN-US">Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">/**</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Default</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">empty</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">exception</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*/</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">static</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> None </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">extends</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> Throwable {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">private</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">static</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">final</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">long</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">serialVersionUID</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">= 1L; </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">private</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> None() {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">/**</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Optionally</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">specify</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"><code></span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">expected</span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"></code></span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">,</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">a</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Throwable,</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">cause</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">a</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">test</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">method</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">succeed</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">iff</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">an</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">exception</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">of</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">the</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">specified</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">class</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">is</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">thrown</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">by</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">the</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">method.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*/</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> Class<? </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">extends</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> Throwable> expected() </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">default</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> None.</span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US">;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">/**</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Optionally</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">specify</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"><code></span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">timeout</span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"></code></span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">in</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">milliseconds</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">cause</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">a</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">test</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">method</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">fail</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">if</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">it</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">takes</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">longer</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">than</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">that</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">number</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">of</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">milliseconds.*/</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">long</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> timeout() </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">default</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> 0L;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> String author(); //</span><span style="">新增</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> String description(); //</span><span style="">新增</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US">}</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span lang="EN-US"><span style="font-family: Calibri;"> </span></span><span style="">新增了作者和注释两个新的属性;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span lang="EN-US"><span style="font-family: Calibri;"></span></span><span style="">应用代码(即编写测试用例的时候,在</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">中必须注明作者和描述信息属性)如下:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTag {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #646464; font-family: "Courier New";' lang="EN-US">@Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US">(author=</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"elbert.chenh"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">,description=</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"TestCase1"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">)</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">void</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestCase1()</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"OK"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">);</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style='color: black; font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;">}</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style='color: black; font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style=""><span style="font-size: medium;">测试代码如下:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTestTag {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">static</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">void</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> main(String[] args) {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTag tt = </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">new</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTag();</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">try</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> Annotation[] annotation = tt.getClass().getMethod(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"TestCase1"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">)</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> .getAnnotations();</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">for</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> (Annotation tag : annotation) {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"Tag is:"</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> + tag);</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"tag.name()"</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> + ((</span><span style='color: #646464; font-family: "Courier New";' lang="EN-US">Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US">) tag).author());</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"tag.age()"</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> + ((</span><span style='color: #646464; font-family: "Courier New";' lang="EN-US">Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US">) (tag)).description());</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> } </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">catch</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> (NoSuchMethodException e) {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> e.printStackTrace();</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style='font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style='color: black; font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;">}</span></span></p>
<p><span style="font-size: medium;"></span></p>
<p><span style="font-size: medium;">在编写junit的测试代码的时候,需要为每个Case编写注释作者等信息。而执行结果平台也需要知道这些信息,而不是通过查看测试代码来发现这些信息,这就需要在测试执行的时候读取到javadoc的信息。</span></p>
<p><span style="font-size: medium;">本文就是针对这个问题的解决方案</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span style="">首先,由于</span><span lang="EN-US"><span style="font-family: Calibri;">JavaDoc</span></span><span style="">是只能读取紧贴函数的注释,目前我们</span><span lang="EN-US"><span style="font-family: Calibri;">Java</span></span><span style="">代码中都被</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">占据。所以我想到只能修改</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">接口</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span lang="EN-US"><span style="font-family: Calibri;"> </span></span><span style="">于是将</span><span lang="EN-US"><span style="font-family: Calibri;">Junit</span></span><span style="">中</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">接口修改如下:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">@interface</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='background: yellow; color: #646464; font-family: "Courier New";' lang="EN-US">Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">/**</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Default</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">empty</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">exception</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*/</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">static</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> None </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">extends</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> Throwable {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">private</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">static</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">final</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">long</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">serialVersionUID</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">= 1L; </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">private</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> None() {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">/**</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Optionally</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">specify</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"><code></span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">expected</span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"></code></span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">,</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">a</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Throwable,</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">cause</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">a</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">test</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">method</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">succeed</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">iff</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">an</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">exception</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">of</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">the</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">specified</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">class</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">is</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">thrown</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">by</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">the</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">method.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*/</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> Class<? </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">extends</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> Throwable> expected() </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">default</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> None.</span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US">;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">/**</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">Optionally</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">specify</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"><code></span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">timeout</span><span style='color: #7f7f9f; font-family: "Courier New";' lang="EN-US"></code></span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">in</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">milliseconds</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">cause</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">a</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">test</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">method</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">to</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">fail</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">if</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">it</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">*</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">takes</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">longer</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">than</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">that</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">number</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">of</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #3f5fbf; font-family: "Courier New";' lang="EN-US">milliseconds.*/</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">long</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> timeout() </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">default</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> 0L;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> String author(); //</span><span style="">新增</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> String description(); //</span><span style="">新增</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US">}</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span lang="EN-US"><span style="font-family: Calibri;"> </span></span><span style="">新增了作者和注释两个新的属性;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: medium;"><span lang="EN-US"><span style="font-family: Calibri;"></span></span><span style="">应用代码(即编写测试用例的时候,在</span><span lang="EN-US"><span style="font-family: Calibri;">@Test</span></span><span style="">中必须注明作者和描述信息属性)如下:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTag {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><span style='color: #646464; font-family: "Courier New";' lang="EN-US">@Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US">(author=</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"elbert.chenh"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">,description=</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"TestCase1"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">)</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">void</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestCase1()</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"OK"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">);</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style='color: black; font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;">}</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style='color: black; font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style=""><span style="font-size: medium;">测试代码如下:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">class</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTestTag {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">public</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">static</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">void</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> main(String[] args) {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTag tt = </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">new</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> TestTag();</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">try</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> Annotation[] annotation = tt.getClass().getMethod(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"TestCase1"</span><span style='color: black; font-family: "Courier New";' lang="EN-US">)</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> .getAnnotations();</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">for</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> (Annotation tag : annotation) {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"Tag is:"</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> + tag);</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"tag.name()"</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> + ((</span><span style='color: #646464; font-family: "Courier New";' lang="EN-US">Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US">) tag).author());</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> System.</span><em><span style='color: #0000c0; font-family: "Courier New";' lang="EN-US">out</span></em><span style='color: black; font-family: "Courier New";' lang="EN-US">.println(</span><span style='color: #2a00ff; font-family: "Courier New";' lang="EN-US">"tag.age()"</span><span style='color: black; font-family: "Courier New";' lang="EN-US"> + ((</span><span style='color: #646464; font-family: "Courier New";' lang="EN-US">Test</span><span style='color: black; font-family: "Courier New";' lang="EN-US">) (tag)).description());</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> } </span><strong><span style='color: #7f0055; font-family: "Courier New";' lang="EN-US">catch</span></strong><span style='color: black; font-family: "Courier New";' lang="EN-US"> (NoSuchMethodException e) {</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> e.printStackTrace();</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: medium;"><span style='color: black; font-family: "Courier New";' lang="EN-US"> }</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style='font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style='color: black; font-family: "Courier New";' lang="EN-US"><span style="font-size: medium;">}</span></span></p>
<p><span style="font-size: medium;"></span></p>
相关推荐
struts-junit spring-mock spring-test junit等的javadoc.jar格式的API文档,直接导入Eclipse/MyEclipse/Netbeans等IDE即可实现快速API查询。 包含以下文件: File name -------------------------------------- ...
junit4.8.2-javadoc.rar
junit-4.1.2 include source and javadoc .
java技术开发 调试阶段 测试技术JUNIT4 说明文档下载
JUnit-4.12-javadoc.jar JUnit-4.12-javadoc.jar 包的说法都是
不知道csdn的这个分数到底是怎么定的,本来是想免费分享给大家的,结果csdn自动帮忙定价到6积分了。资源绝对是可以用的大家可以放心下载和使用
jar包下载,这是最新的Junitjar包,还有网页链接,https://mvnrepository.com/repos/central
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
赠送原API文档:junit-4.11-javadoc.jar; 赠送源代码:junit-4.11-sources.jar; 赠送Maven依赖信息文件:junit-4.11.pom; 包含翻译后的API文档:junit-4.11-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven...
surefire-junit4-2.7.2-javadoc.jar
java jar包,亲测试可用 安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。 加快下载速度; 压缩,使文件变小,与ZIP压缩机制完全相同。 ...能够让JAR包里面的文件依赖于统一版本的类文件。...
rpm安装包
赠送原API文档:junit-4.12-javadoc.jar; 赠送源代码:junit-4.12-sources.jar; 包含翻译后的API文档:junit-4.12-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId:junit,artifactId:junit,...
赠送原API文档:junit-4.13.2-javadoc.jar; 赠送源代码:junit-4.13.2-sources.jar; 赠送Maven依赖信息文件:junit-4.13.2.pom; 包含翻译后的API文档:junit-4.13.2-javadoc-API文档-中文(简体)版.zip; Maven...
JUnit是Java编程语言的单元测试框架,用于编写和可重复运行的自动化测试。JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有(下列注解标示了单元测试的不同运行阶段执行的代码): @BeforeClass 全局只会...
赠送原API文档:junit-jupiter-api-5.7.2-javadoc.jar; 赠送源代码:junit-jupiter-api-5.7.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-api-5.7.2.pom; 包含翻译后的API文档:junit-jupiter-api-5.7.2...
赠送原API文档:junit-4.11-javadoc.jar; 赠送源代码:junit-4.11-sources.jar; 赠送Maven依赖信息文件:junit-4.11.pom; 包含翻译后的API文档:junit-4.11-javadoc-API文档-中文(简体)版.zip; Maven坐标:junit...
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...
JUnit的使用.doc JUnit的使用.doc
赠送原API文档:archunit-junit5-api-0.14.1-javadoc.jar; 赠送源代码:archunit-junit5-api-0.14.1-sources.jar; 赠送Maven依赖信息文件:archunit-junit5-api-0.14.1.pom; 包含翻译后的API文档:archunit-junit...