DongDavid 3年前

修改理由:

描述不清晰

详细描述:

这里使用的是composer require phpunit/phpunit mockery/mockery直接引入依赖包(未声明版本),这样会导致生成的composer.json文件中形成

"require": {
    "guzzlehttp/guzzle": "^6.3",
    "phpunit/phpunit": "^9.2",
    "mockery/mockery": "^1.4"
},

然后在Laravel项目引入的时候就出错了,
因为在laravel的部分版本中,phpunit是限制为^8.0.
就和前面第8节一样,使用composer require guzzlehttp/guzzle安装依赖而未声明版本号,我安装的是7.0版本的。而目前Laravel7.19中已经默认引入了"guzzlehttp/guzzle": "^6.3",就会导致冲突。
所以我觉得这里需要给出composer.json的内容方便学习。

    "require": {
        "guzzlehttp/guzzle": "^6.3"
    },
    "require-dev": {
        "phpunit/phpunit": "~5 || ~7",
        "mockery/mockery": "^1.1"
    },

相关信息:


此投稿已在 3年前 合并。

内容修改:

红色背景 为原始内容

绿色背景 为新增或者修改的内容

OldNewDifferences
1111```shell
1212$ cd ~/Code/weather
1313$ composer require phpunit/phpunit mockery/mockery
 14```  
 15最终 `composer.json` 内容如下:  
 16  
 17*composer.json*  
 18```  
 19{  
 20   "name": "overtrue/weather",  
 21   "description": "A weather SDK.",  
 22   "license": "MIT",  
 23   "authors": [  
 24       {  
 25           "name": "overtrue",  
 26           "email": "i@overtrue.me"  
 27       }  
 28   ],  
 29   "autoload": {  
 30       "psr-4": {  
 31           "Overtrue\\Weather\\": "./src"  
 32       }  
 33   },  
 34   "require": {  
 35       "guzzlehttp/guzzle": "^6.3"  
 36   },  
 37   "require-dev": {  
 38       "phpunit/phpunit": "~5 || ~7",  
 39       "mockery/mockery": "^1.1"  
 40   }  
 41}  
1442```
1543
1644在开始写测试之前我们先大致了解一下 PHPUnit 的使用: