PHPUnit初试,phpunit
PHPUnit初试,phpunit
先测试了一下加减,检查一下环境,又调用函数测试了服务器名。
源代码:
<span> 1</span> <span>class</span><span> DemoController extends \Think\Controller </span><span> 2</span> <span>{ </span><span> 3</span> <span> 4</span> <span>/*</span><span>* </span><span> 5</span> <span> * @assert (5, 8) == 13 </span><span> 6</span> <span> * @assert (16, 76) == 92 </span><span> 7</span> <span> * @assert (6, 16) == 32 </span><span> 8</span> <span> * @assert (6, 4) == 0 </span><span> 9</span> <span> * @assert ('abc', 1) == 2 </span><span>10</span> <span> * @param int $a </span><span>11</span> <span> * @param int $b </span><span>12</span> <span> * @return int </span><span>13</span> <span>*/</span> <span>14</span> <span>public</span><span> function plus($a, $b) </span><span>15</span> <span> { </span><span>16</span> <span>return</span> $a +<span> $b; </span><span>17</span> <span> } </span><span>18</span> <span>19</span> <span>/*</span><span>* </span><span>20</span> <span> * @assert (14, 8) == 6 </span><span>21</span> <span> * @assert (16, 6) == 10 </span><span>22</span> <span> * @assert (6, 4) == 0 </span><span>23</span> <span> * @assert ('45', 1) == 44 </span><span>24</span> <span> * @param int $a </span><span>25</span> <span> * @param int $b </span><span>26</span> <span> * @return int </span><span>27</span> <span>*/</span> <span>28</span> <span>public</span><span> function subtract($a, $b) </span><span>29</span> <span> { </span><span>30</span> <span>return</span> $a -<span> $b; </span><span>31</span> <span> } </span><span>32</span> <span>33</span> <span>public</span> function connectToServer($serverName = <span>null</span><span>) </span><span>34</span> <span> { </span><span>35</span> <span>if</span> ($serverName == <span>null</span><span>) { </span><span>36</span> <span>throw</span> <span>new</span> Exception(<span>"</span><span>这不是一个服务器名</span><span>"</span><span>); </span><span>37</span> <span> } </span><span>38</span> $fp = fsockopen($serverName, <span>8080</span><span>); </span><span>39</span> <span>return</span> ($fp) ? <span>true</span> : <span>false</span><span>; </span><span>40</span> <span> } </span><span>41</span> <span>42</span> <span>43</span> }
生成测试文件:
<span> 1</span> <span>class</span><span> DemoControllerTest extends \PHPUnit_Framework_TestCase </span><span> 2</span> <span>{ </span><span> 3</span> <span> 4</span> <span>/*</span><span>* </span><span> 5</span> <span> * @var DemoController </span><span> 6</span> <span>*/</span> <span> 7</span> <span>protected</span> $<span>object</span><span>; </span><span> 8</span> <span> 9</span> <span>/*</span><span>* </span><span> 10</span> <span> * Sets up the fixture, for example, opens a network connection. </span><span> 11</span> <span> * This method is called before a test is executed. </span><span> 12</span> <span>*/</span> <span> 13</span> <span>protected</span><span> function setUp() </span><span> 14</span> <span> { </span><span> 15</span> $<span>this</span>-><span>object</span> = <span>new</span><span> DemoController; </span><span> 16</span> <span> } </span><span> 17</span> <span> 18</span> <span>/*</span><span>* </span><span> 19</span> <span> * Tears down the fixture, for example, closes a network connection. </span><span> 20</span> <span> * This method is called after a test is executed. </span><span> 21</span> <span>*/</span> <span> 22</span> <span>protected</span><span> function tearDown() </span><span> 23</span> <span> { </span><span> 24</span> <span> 25</span> <span> } </span><span> 26</span> <span> 27</span> <span>/*</span><span>* </span><span> 28</span> <span> * Generated from @assert (5, 8) == 13. </span><span> 29</span> <span> * </span><span> 30</span> <span> * @covers Home\Controller\DemoController::plus </span><span> 31</span> <span>*/</span> <span> 32</span> <span>public</span><span> function testPlus() </span><span> 33</span> <span> { </span><span> 34</span> $<span>this</span>-><span>assertEquals( </span><span> 35</span> <span>13</span>, $<span>this</span>-><span>object</span>->plus(<span>5</span>, <span>8</span><span>) </span><span> 36</span> <span> ); </span><span> 37</span> <span> } </span><span> 38</span> <span> 39</span> <span>/*</span><span>* </span><span> 40</span> <span> * Generated from @assert (16, 76) == 92. </span><span> 41</span> <span> * </span><span> 42</span> <span> * @covers Home\Controller\DemoController::plus </span><span> 43</span> <span>*/</span> <span> 44</span> <span>public</span><span> function testPlus2() </span><span> 45</span> <span> { </span><span> 46</span> $<span>this</span>-><span>assertEquals( </span><span> 47</span> <span>92</span>, $<span>this</span>-><span>object</span>->plus(<span>16</span>, <span>76</span><span>) </span><span> 48</span> <span> ); </span><span> 49</span> <span> } </span><span> 50</span> <span> 51</span> <span>/*</span><span>* </span><span> 52</span> <span> * Generated from @assert (6, 16) == 32. </span><span> 53</span> <span> * </span><span> 54</span> <span> * @covers Home\Controller\DemoController::plus </span><span> 55</span> <span>*/</span> <span> 56</span> <span>public</span><span> function testPlus3() </span><span> 57</span> <span> { </span><span> 58</span> $<span>this</span>-><span>assertEquals( </span><span> 59</span> <span>32</span>, $<span>this</span>-><span>object</span>->plus(<span>6</span>, <span>16</span><span>) </span><span> 60</span> <span> ); </span><span> 61</span> <span> } </span><span> 62</span> <span> 63</span> <span>/*</span><span>* </span><span> 64</span> <span> * Generated from @assert (6, 4) == 0. </span><span> 65</span> <span> * </span><span> 66</span> <span> * @covers Home\Controller\DemoController::plus </span><span> 67</span> <span>*/</span> <span> 68</span> <span>public</span><span> function testPlus4() </span><span> 69</span> <span> { </span><span> 70</span> $<span>this</span>-><span>assertEquals( </span><span> 71</span> <span>0</span>, $<span>this</span>-><span>object</span>->plus(<span>6</span>, <span>4</span><span>) </span><span> 72</span> <span> ); </span><span> 73</span> <span> } </span><span> 74</span> <span> 75</span> <span>/*</span><span>* </span><span> 76</span> <span> * Generated from @assert ('abc', 1) == 0. </span><span> 77</span> <span> * </span><span> 78</span> <span> * @covers Home\Controller\DemoController::plus </span><span> 79</span> <span>*/</span> <span> 80</span> <span>public</span><span> function testPlus5() </span><span> 81</span> <span> { </span><span> 82</span> $<span>this</span>-><span>assertEquals( </span><span> 83</span> <span>2</span>, $<span>this</span>-><span>object</span>->plus(<span>'</span><span>abc</span><span>'</span>, <span>1</span><span>) </span><span> 84</span> <span> ); </span><span> 85</span> <span> } </span><span> 86</span> <span> 87</span> <span>/*</span><span>* </span><span> 88</span> <span> * Generated from @assert (14, 8) == 6. </span><span> 89</span> <span> * </span><span> 90</span> <span> * @covers Home\Controller\DemoController::subtract </span><span> 91</span> <span>*/</span> <span> 92</span> <span>public</span><span> function testSubtract() </span><span> 93</span> <span> { </span><span> 94</span> $<span>this</span>-><span>assertEquals( </span><span> 95</span> <span>6</span>, $<span>this</span>-><span>object</span>->subtract(<span>14</span>, <span>8</span><span>) </span><span> 96</span> <span> ); </span><span> 97</span> <span> } </span><span> 98</span> <span> 99</span> <span>/*</span><span>* </span><span>100</span> <span> * Generated from @assert (16, 6) == 10. </span><span>101</span> <span> * </span><span>102</span> <span> * @covers Home\Controller\DemoController::subtract </span><span>103</span> <span>*/</span> <span>104</span> <span>public</span><span> function testSubtract2() </span><span>105</span> <span> { </span><span>106</span> $<span>this</span>-><span>assertEquals( </span><span>107</span> <span>10</span>, $<span>this</span>-><span>object</span>->subtract(<span>16</span>, <span>6</span><span>) </span><span>108</span> <span> ); </span><span>109</span> <span> } </span><span>110</span> <span>111</span> <span>/*</span><span>* </span><span>112</span> <span> * Generated from @assert (6, 4) == 0. </span><span>113</span> <span> * </span><span>114</span> <span> * @covers Home\Controller\DemoController::subtract </span><span>115</span> <span>*/</span> <span>116</span> <span>public</span><span> function testSubtract3() </span><span>117</span> <span> { </span><span>118</span> $<span>this</span>-><span>assertEquals( </span><span>119</span> <span>0</span>, $<span>this</span>-><span>object</span>->subtract(<span>6</span>, <span>4</span><span>) </span><span>120</span> <span> ); </span><span>121</span> <span> } </span><span>122</span> <span>123</span> <span>/*</span><span>* </span><span>124</span> <span> * Generated from @assert ('abc', 1) == 0. </span><span>125</span> <span> * </span><span>126</span> <span> * @covers Home\Controller\DemoController::subtract </span><span>127</span> <span>*/</span> <span>128</span> <span>public</span><span> function testSubtract4() </span><span>129</span> <span> { </span><span>130</span> $<span>this</span>-><span>assertEquals( </span><span>131</span> <span>44</span>, $<span>this</span>-><span>object</span>->subtract(<span>'</span><span>45</span><span>'</span>, <span>1</span><span>) </span><span>132</span> <span> ); </span><span>133</span> <span> } </span><span>134</span> <span>135</span> <span>/*</span><span>* </span><span>136</span> <span> * @covers Home\Controller\DemoController::connectToServer </span><span>137</span> <span> * @todo Implement testConnectToServer(). </span><span>138</span> <span>*/</span> <span>139</span> <span>public</span><span> function testConnectToServer() </span><span>140</span> <span> { </span><span>141</span> <span>//</span> <span>//</span><span> Remove the following lines when you implement this test. </span><span>142</span> <span>//</span><span> $this->markTestIncomplete( </span><span>143</span> <span>//</span><span> 'This test has not been implemented yet.' </span><span>144</span> <span>//</span><span> );</span> <span>145</span> $serverName = <span>'</span><span>wwwcom</span><span>'</span><span>; </span><span>146</span> $<span>this</span>->assertTrue($<span>this</span>-><span>object</span>->connectToServer($serverName) === <span>false</span><span>); </span><span>147</span> <span> } </span><span>148</span> <span>public</span><span> function testConnectToServer2() </span><span>149</span> <span> { </span><span>150</span> $serverName = <span>'</span><span>www.baidu.com</span><span>'</span><span>; </span><span>151</span> $<span>this</span>->assertTrue($<span>this</span>-><span>object</span>->connectToServer($serverName) !== <span>false</span><span>); </span><span>152</span> }
这里的服务器测试用例是手动加上去的!
执行结果:
<span> 1</span> ..FFF..F..F <span>11</span> / <span>11</span> (<span>100</span>%<span>) </span><span> 2</span> <span> 3</span> Time: <span>44.42</span> seconds, Memory: <span>8</span><span>.75Mb </span><span> 4</span> <span> 5</span> There were <span>5</span><span> failures: </span><span> 6</span> <span> 7</span> <span>1</span><span>) Home\Controller\DemoControllerTest::testPlus3 </span><span> 8</span> Failed asserting that <span>22</span> matches expected <span>32</span><span>. </span><span> 9</span> <span>10</span> D:\wamp\www\wxportal\tests\Application\Home\Controller\DemoController.classTest.php:<span>67</span> <span>11</span> <span>12</span> <span>2</span><span>) Home\Controller\DemoControllerTest::testPlus4 </span><span>13</span> Failed asserting that <span>10</span> matches expected <span>0</span><span>. </span><span>14</span> <span>15</span> D:\wamp\www\wxportal\tests\Application\Home\Controller\DemoController.classTest.php:<span>79</span> <span>16</span> <span>17</span> <span>3</span><span>) Home\Controller\DemoControllerTest::testPlus5 </span><span>18</span> Failed asserting that <span>1</span> matches expected <span>2</span><span>. </span><span>19</span> <span>20</span> D:\wamp\www\wxportal\tests\Application\Home\Controller\DemoController.classTest.php:<span>91</span> <span>21</span> <span>22</span> <span>4</span><span>) Home\Controller\DemoControllerTest::testSubtract3 </span><span>23</span> Failed asserting that <span>2</span> matches expected <span>0</span><span>. </span><span>24</span> <span>25</span> D:\wamp\www\wxportal\tests\Application\Home\Controller\DemoController.classTest.php:<span>127</span> <span>26</span> <span>27</span> <span>5</span><span>) Home\Controller\DemoControllerTest::testConnectToServer2 </span><span>28</span> Failed asserting that <span>false</span> <span>is</span> <span>true</span><span>. </span><span>29</span> <span>30</span> D:\wamp\www\wxportal\tests\Application\Home\Controller\DemoController.classTest.php:<span>158</span> <span>31</span> <span>32</span> FAILURES! <span>33</span> Tests: <span>11</span>, Assertions: <span>11</span>, Failures: <span>5</span><span>. </span><span>34</span> 完成。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WinRE(Windows 복구 환경)는 Windows 운영 체제 오류를 복구하는 데 사용되는 환경입니다. WinRE에 들어간 후 시스템 복원, 공장 초기화, 업데이트 제거 등을 수행할 수 있습니다. WinRE로 부팅할 수 없는 경우 이 문서에서는 문제 해결을 위한 수정 사항을 안내합니다. Windows 복구 환경으로 부팅할 수 없습니다. Windows 복구 환경으로 부팅할 수 없는 경우 아래 제공된 수정 사항을 사용하십시오. Windows 복구 환경 상태 확인 다른 방법을 사용하여 Windows 복구 환경으로 들어가십시오. 실수로 Windows 복구 파티션을 삭제하셨습니까? 아래에서 전체 업그레이드 또는 Windows 새로 설치를 수행하십시오. 이러한 모든 수정 사항에 대해 자세히 설명했습니다. 1] Wi-Fi 확인

Furmark에 대해 어떻게 생각하시나요? 1. 메인 인터페이스에서 "실행 모드"와 "디스플레이 모드"를 설정하고 "테스트 모드"도 조정한 후 "시작" 버튼을 클릭하세요. 2. 잠시 기다리면 그래픽 카드의 다양한 매개변수를 포함한 테스트 결과가 표시됩니다. Furmark는 어떻게 자격을 갖추었나요? 1. 푸르마크 베이킹 머신을 사용하여 약 30분 동안 결과를 확인합니다. 기본적으로 85도 정도, 최고 온도는 87도, 실내 온도는 19도입니다. 대형 섀시에 섀시 팬 포트 5개 전면 2개, 상단 2개, 후면 1개로 구성됐으나 팬은 1개만 설치됐다. 모든 액세서리는 오버클럭되지 않습니다. 2. 정상적인 상황에서 그래픽 카드의 정상 온도는 "30-85℃" 사이여야 합니다. 3. 주변온도가 너무 높은 여름에도 정상온도는 "50~85℃"
![Teams에서 맞춤법 검사가 작동하지 않음 [수정됨]](https://img.php.cn/upload/article/000/887/227/170968741326618.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
때때로 Teams에서 맞춤법 검사가 작동하지 않는 경우가 있다는 사실을 알아차리기 시작했습니다. 맞춤법 검사는 효과적인 의사소통을 위한 필수 도구이며 이에 대한 공격은 작업 흐름에 상당한 혼란을 초래할 수 있습니다. 이 문서에서는 맞춤법 검사가 예상대로 작동하지 않는 일반적인 이유와 이전 상태로 복원하는 방법을 살펴보겠습니다. 따라서 Teams에서 맞춤법 검사가 작동하지 않는 경우 이 문서에 설명된 해결 방법을 따르세요. Microsoft 맞춤법 검사가 작동하지 않는 이유는 무엇입니까? Microsoft 맞춤법 검사가 제대로 작동하지 않는 데에는 여러 가지 이유가 있을 수 있습니다. 이러한 이유에는 호환되지 않는 언어 설정, 맞춤법 검사 기능 비활성화, MSTeam 또는 MSOffice 설치 손상 등이 포함됩니다. 또한 오래된 MSTeams 및 MSOf

새로운 판타지 요정 MMORPG '주선2'의 '무작용 테스트'가 4월 23일 출시된다. 원작으로부터 수천 년이 지난 주선 대륙에서는 어떤 새로운 요정 모험 이야기가 펼쳐질 것인가? 육계선불세계, 불멸수련을 위한 전임 학원, 불멸수련의 자유로운 삶, 불멸세계의 온갖 즐거움이 불멸친구들이 직접 탐험하는 것을 기다리고 있습니다! 이제 'Wuwei 테스트' 사전 다운로드가 공개되었습니다. 요정 친구들은 공식 웹사이트에 접속하여 다운로드할 수 있습니다. 서버가 출시되기 전에는 게임 서버에 로그인할 수 없습니다. 사전 다운로드 및 설치 후에는 활성화 코드를 사용할 수 있습니다. 완성 됐습니다. "Zhu Xian 2" "Inaction Test" 개장 시간: 4월 23일 10:00 - 5월 6일 23:59 Zhu Xian의 정통 속편 "Zhu Xian 2"의 새로운 요정 모험 장은 "Zhu Xian" 소설을 기반으로 합니다. 원작의 세계관을 바탕으로 게임 배경이 설정되었습니다.

Windows 11에서 SSD 상태를 확인하는 방법은 무엇입니까? 빠른 읽기, 쓰기 및 액세스 속도를 위해 SSD는 빠르게 HDD를 대체하고 있지만 SSD의 안정성이 더 뛰어나더라도 여전히 Windows 11에서 SSD의 상태를 확인해야 합니다. 그것을 운영하는 방법? 이 튜토리얼에서는 편집자가 방법을 공유합니다. 방법 1: WMIC1을 사용하고 Win+R 키 조합을 사용하여 wmic를 입력한 다음 확인을 누르거나 클릭합니다. Enter2. 이제 다음 명령을 입력하거나 붙여넣어 SSD 상태를 확인합니다. diskdrivegetstatus "상태: OK" 메시지가 나타나면 SSD 드라이브가 정상적으로 작동하고 있는 것입니다.

Golang에서 문자열이 특정 문자로 시작하는지 확인하는 방법은 무엇입니까? Golang으로 프로그래밍할 때 문자열이 특정 문자로 시작하는지 확인해야 하는 상황에 자주 직면하게 됩니다. 이 요구 사항을 충족하기 위해 Golang의 문자열 패키지에서 제공하는 기능을 사용할 수 있습니다. 다음에는 Golang을 사용하여 문자열이 특정 문자로 시작하는지 확인하는 방법을 구체적인 코드 예제와 함께 자세히 소개하겠습니다. Golang에서는 strings 패키지의 HasPrefix를 사용할 수 있습니다.

기능 테스트는 블랙박스 및 화이트박스 테스트를 통해 기능 기능성을 검증하고, 코드 커버리지는 테스트 케이스에 포함된 코드 부분을 측정합니다. Python 및 Java와 같은 언어마다 테스트 프레임워크, 적용 범위 도구 및 기능이 다릅니다. 실제 사례에서는 기능 테스트 및 적용 범위 평가를 위해 Python의 Unittest 및 Coverage와 Java의 JUnit 및 JaCoCo를 사용하는 방법을 보여줍니다.

'오퍼레이션 델타'는 오늘(3월 7일) '코드네임: ZERO'라는 대규모 PC 테스트를 시작한다. 지난 주말 이 게임은 상하이에서 오프라인 플래시몹 체험행사를 진행했는데, 17173도 행운을 빌어 참여하게 됐다. 이번 시험은 지난 시험으로부터 불과 4개월여밖에 남지 않은 상황인데, 이 짧은 시간 안에 '델타 작전'이 어떤 새로운 볼거리와 놀라움을 선사할지 궁금증을 자아낸다. 4개월여 전 오프라인 테이스팅 세션과 첫 번째 베타 버전에서 'Operation Delta'를 경험했습니다. 당시 게임은 '위험한 액션' 모드만 열었습니다. 그러나 델타 작전은 당시로서는 이미 인상적이었습니다. 주요 제조사들이 모바일 게임 시장에 몰려드는 상황에서 국제 표준에 버금가는 FPS
