| Conditions | 8 | 
| Paths | 24 | 
| Total Lines | 62 | 
| Code Lines | 24 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 1 | ||
| Bugs | 0 | Features | 0 | 
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php  | 
            ||
| 103 | public function testGetData()  | 
            ||
| 104 |     { | 
            ||
| 105 | |||
| 106 | $media = new Media($this->config->appId,$this->config->appSecret);  | 
            ||
| 107 |         $image = $media->lists('image'); | 
            ||
| 108 | |||
| 109 | //未上架  | 
            ||
| 110 | $product = new Product();  | 
            ||
| 111 | $product->setBaseAttr($image['item'][0]['url'],array($image['item'][0]['url'],$image['item'][0]['url']),null,'商品名',$this->categoryId)  | 
            ||
| 112 |             ->setDetail('text','text') | 
            ||
| 113 |             ->setDetail('img',$image['item'][0]['url']); | 
            ||
| 114 | |||
| 115 | $testData = Yaml::parse(file_get_contents(__DIR__.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'..'.DIRECTORY_SEPARATOR.'Config'.DIRECTORY_SEPARATOR.'Data.yml'));  | 
            ||
| 116 | |||
| 117 |         foreach ($testData['Overtrue\Wechat\Test\Shop\ProductTest']['testGetProperty'] as $value) { | 
            ||
| 118 | $product->setProperty($value['id'],$value['property_value'][0]['id']);  | 
            ||
| 119 | }  | 
            ||
| 120 | |||
| 121 |         foreach ($testData['Overtrue\Wechat\Test\Shop\ProductTest']['testGetSku'] as $value) { | 
            ||
| 122 |             foreach ($value['value_list'] as $key => $valueList) { | 
            ||
| 123 | //此判断仅是为了 让子序列少点,实际程序按照自身的逻辑来  | 
            ||
| 124 |                 if ($key % 5 == 0 && $key % 2 == 0) { | 
            ||
| 125 | $skuList[] = $valueList['id'];  | 
            ||
| 126 | }  | 
            ||
| 127 | |||
| 128 | }  | 
            ||
| 129 |             $skuInfo[] = array('id'=>$value['id'],'vid'=>$skuList); | 
            ||
| 130 | $product->setSkuInfo($value['id'],$skuList);  | 
            ||
| 131 | }  | 
            ||
| 132 | |||
| 133 |         foreach ($skuInfo[0]['vid'] as $vid) { | 
            ||
| 134 |             foreach ($skuInfo[1]['vid'] as $vid1) { | 
            ||
| 135 | $product->setSkuList(100, 20, $image['item'][0]['url'], 100, array(array($skuInfo[0]['id'], $vid), array($skuInfo[1]['id'], $vid1)));  | 
            ||
| 136 | }  | 
            ||
| 137 | }  | 
            ||
| 138 | |||
| 139 | $data = $product->setAttrext(0,1,1,1)  | 
            ||
| 140 |             ->setLocation('浙江省','杭州市','滨江区阿里园') | 
            ||
| 141 | ->setDeliveryInfo(1,'400184180')  | 
            ||
| 142 | ->toArray();  | 
            ||
| 143 | $this->assertTrue(is_array($data));  | 
            ||
| 144 | |||
| 145 | // //以上架  | 
            ||
| 146 | // $product = new Product(true);  | 
            ||
| 147 | //        $data = $product->setBaseAttr('main_img',array('img','img')) | 
            ||
| 148 | //            ->setDetail('text','text') | 
            ||
| 149 | //            ->setDetail('img','image') | 
            ||
| 150 | //            //->setProperty('id','vid') | 
            ||
| 151 | //            //->setProperty('id','vid') | 
            ||
| 152 | //            ->setSkuInfo('id',array('vid','vid')) | 
            ||
| 153 | // //统一售价  | 
            ||
| 154 | //            //->setSkuList('原价','微信价','sku_ico','sku 库存'); | 
            ||
| 155 | // //设置sku售价  | 
            ||
| 156 | //            ->setSkuList('原价','微信价','sku_ico','sku 库存',array('id'=>'vid','id1'=>'vid1')) | 
            ||
| 157 | // ->setAttrext(0,1,1,1)  | 
            ||
| 158 | //            ->setLocation('浙江省','杭州市','滨江区阿里园') | 
            ||
| 159 | // ->setDeliveryInfo(1,'400184180')  | 
            ||
| 160 | // ->toArray();  | 
            ||
| 161 | // $this->assertTrue(is_array($data));  | 
            ||
| 162 | |||
| 163 | |||
| 164 | }  | 
            ||
| 165 | }  | 
            ||
| 166 | 
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: