setGoodId(1001); $this->assertEquals(1001, $request->getGoodId()); // 测试设置购买数量 $request->setNumber(5); $this->assertEquals(5, $request->getNumber()); } /** * 测试RequestShopBuy默认值 */ public function testRequestShopBuyDefaultValues() { $request = new RequestShopBuy(); // 测试默认值 $this->assertEquals(0, $request->getGoodId()); $this->assertEquals(0, $request->getNumber()); } /** * 测试ResponseShopBuy响应对象 */ public function testResponseShopBuyStructure() { $response = new ResponseShopBuy(); // 验证响应对象可以正常创建 $this->assertInstanceOf(ResponseShopBuy::class, $response); } /** * 测试BuyHandler类结构 */ public function testBuyHandlerStructure() { // 由于BuyHandler需要Response参数,我们只测试类是否存在 $this->assertTrue(class_exists(BuyHandler::class)); // 验证BuyHandler是BaseHandler的子类 $reflection = new \ReflectionClass(BuyHandler::class); $this->assertTrue($reflection->isSubclassOf(\App\Module\AppGame\Handler\BaseHandler::class)); } /** * 测试购买请求参数验证 */ public function testBuyRequestValidation() { $request = new RequestShopBuy(); // 测试有效的购买参数 $validGoodIds = [1, 100, 1000, 9999]; $validNumbers = [1, 5, 10, 99]; foreach ($validGoodIds as $goodId) { $request->setGoodId($goodId); $this->assertEquals($goodId, $request->getGoodId()); $this->assertTrue($request->getGoodId() > 0); } foreach ($validNumbers as $number) { $request->setNumber($number); $this->assertEquals($number, $request->getNumber()); $this->assertTrue($request->getNumber() > 0); } } /** * 测试无效的购买参数 */ public function testInvalidBuyParameters() { $request = new RequestShopBuy(); // 测试无效的商品ID $invalidGoodIds = [0, -1, -100]; foreach ($invalidGoodIds as $goodId) { $request->setGoodId($goodId); $this->assertEquals($goodId, $request->getGoodId()); $this->assertFalse($request->getGoodId() > 0); } // 测试无效的购买数量 $invalidNumbers = [0, -1, -10]; foreach ($invalidNumbers as $number) { $request->setNumber($number); $this->assertEquals($number, $request->getNumber()); $this->assertFalse($request->getNumber() > 0); } } /** * 测试购买请求数据完整性 */ public function testBuyRequestDataIntegrity() { $request = new RequestShopBuy(); // 设置完整的购买请求数据 $goodId = 1001; $number = 5; $request->setGoodId($goodId); $request->setNumber($number); // 验证数据完整性 $this->assertEquals($goodId, $request->getGoodId()); $this->assertEquals($number, $request->getNumber()); // 验证这是一个完整的购买请求 $this->assertTrue($request->getGoodId() > 0); $this->assertTrue($request->getNumber() > 0); } /** * 测试边界值 */ public function testBoundaryValues() { $request = new RequestShopBuy(); // 测试最小有效值 $minValidValue = 1; $request->setGoodId($minValidValue); $request->setNumber($minValidValue); $this->assertEquals($minValidValue, $request->getGoodId()); $this->assertEquals($minValidValue, $request->getNumber()); // 测试较大值 $largeValue = 999999; $request->setGoodId($largeValue); $request->setNumber($largeValue); $this->assertEquals($largeValue, $request->getGoodId()); $this->assertEquals($largeValue, $request->getNumber()); } /** * 测试多次设置值 */ public function testMultipleValueSetting() { $request = new RequestShopBuy(); // 多次设置商品ID $request->setGoodId(100); $this->assertEquals(100, $request->getGoodId()); $request->setGoodId(200); $this->assertEquals(200, $request->getGoodId()); // 多次设置购买数量 $request->setNumber(1); $this->assertEquals(1, $request->getNumber()); $request->setNumber(10); $this->assertEquals(10, $request->getNumber()); } }