25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 
 

122 satır
3.2 KiB

  1. <?php declare(strict_types=1);
  2. /**
  3. * Created by PhpStorm.
  4. * User: zhengmingwei
  5. * Date: 2020/5/4
  6. * Time: 6:20 PM
  7. */
  8. namespace tests\unishop\controller;
  9. use addons\unishop\controller\Sms;
  10. use addons\unishop\controller\User;
  11. use addons\unishop\extend\PhpunitFunctionCustomize;
  12. use PHPUnit\Framework\TestCase;
  13. class UserTest extends TestCase
  14. {
  15. use PhpunitFunctionCustomize;
  16. /**
  17. * @test
  18. */
  19. public function register()
  20. {
  21. $contents = $this->userLogin();
  22. $this->assertNotEmpty($contents);
  23. $this->assertIsArray($contents);
  24. $this->assertSame(1, $contents['code']);
  25. $this->assertIsArray($contents['data']);
  26. $this->assertIsArray($contents['data']);
  27. $this->assertNotEmpty($contents['data']['id']);
  28. $this->assertNotEmpty($contents['data']['username']);
  29. $this->assertNotEmpty($contents['data']['mobile']);
  30. $this->assertArrayHasKey('avatar', $contents['data']);
  31. $this->assertNotEmpty($contents['data']['token']);
  32. $this->assertNotEmpty($contents['data']['user_id']);
  33. return $contents['data'];
  34. }
  35. /**
  36. * @test
  37. * @depends register
  38. */
  39. public function login(array $userinfo)
  40. {
  41. $contents = $this->request(User::class, 'login', [
  42. 'mobile' => self::$mobile,
  43. 'password' => self::$password
  44. ]);
  45. $this->assertIsArray($contents);
  46. $this->assertSame(1, $contents['code']);
  47. $this->assertArrayHasKey('data', $contents);
  48. $this->assertNotEmpty($contents['data']['id']);
  49. $this->assertNotEmpty($contents['data']['username']);
  50. $this->assertNotEmpty($contents['data']['mobile']);
  51. $this->assertArrayHasKey('avatar', $contents['data']);
  52. $this->assertNotEmpty($contents['data']['token']);
  53. $this->assertNotEmpty($contents['data']['user_id']);
  54. return $contents['data'];
  55. }
  56. /**
  57. * @test
  58. * @depends login
  59. */
  60. public function resetpwd(array $userinfo)
  61. {
  62. // 模拟发送短信
  63. \app\common\model\Sms::create(['event' => $this->eventReserpwd, 'mobile' => self::$mobile, 'code' => self::$smsCode, 'ip' => 'phpunit', 'createtime' => time()]);
  64. $contents = $this->request(User::class, 'resetpwd', [
  65. 'captcha' => self::$smsCode,
  66. 'mobile' => self::$mobile,
  67. 'password' => self::$password
  68. ]);
  69. $this->assertSame(1, $contents['code']);
  70. }
  71. /**
  72. * @test
  73. * @depends login
  74. */
  75. public function edit(array $userinfo)
  76. {
  77. $contents = $this->request(User::class, 'edit',[
  78. 'username' => self::$username . mt_rand(0,100000)
  79. ]);
  80. $this->assertSame(1, $contents['code']);
  81. }
  82. /**
  83. * @test
  84. * @depends login
  85. */
  86. public function status()
  87. {
  88. $contents = $this->request(User::class, 'status');
  89. $this->assertEquals(1, $contents['code']);
  90. $this->assertEquals(1, $contents['data']);
  91. }
  92. /**
  93. * @test
  94. */
  95. public function authSession()
  96. {
  97. $contents = $this->request(User::class, 'authSession');
  98. // 这里只测试接口是否通
  99. $this->assertEquals(1, $contents['code']);
  100. }
  101. }