From 82aa9cd7dd10c1f309b603454582a464c3782829 Mon Sep 17 00:00:00 2001 From: liugang Date: Wed, 10 Sep 2025 09:31:31 +0800 Subject: [PATCH] + [misc] Add unit tests for testcaseModel::getXmlTagsArray() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../test/lib/testcase.unittest.class.php | 22 +++++++++++++ .../testcase/test/model/getxmltagsarray.php | 33 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100755 module/testcase/test/model/getxmltagsarray.php diff --git a/module/testcase/test/lib/testcase.unittest.class.php b/module/testcase/test/lib/testcase.unittest.class.php index 4f135198a7..9278719d03 100644 --- a/module/testcase/test/lib/testcase.unittest.class.php +++ b/module/testcase/test/lib/testcase.unittest.class.php @@ -2175,4 +2175,26 @@ class testcaseTest return $result; } + + /** + * Test getXmlTagsArray method. + * + * @param string $xmlString + * @param array $namespaces + * @param array $options + * @access public + * @return mixed + */ + public function getXmlTagsArrayTest(string $xmlString, array $namespaces, array $options): mixed + { + // 创建SimpleXMLElement对象 + $xml = simplexml_load_string($xmlString); + if($xml === false) return false; + + $result = $this->objectModel->getXmlTagsArray($xml, $namespaces, $options); + if(dao::isError()) return dao::getError(); + + // 返回数组数量用于测试验证 + return count($result); + } } diff --git a/module/testcase/test/model/getxmltagsarray.php b/module/testcase/test/model/getxmltagsarray.php new file mode 100755 index 0000000000..976611e0ae --- /dev/null +++ b/module/testcase/test/model/getxmltagsarray.php @@ -0,0 +1,33 @@ +#!/usr/bin/env php +getXmlTagsArrayTest('test1test2', array('' => null), array('removeNamespace' => true, 'autoArray' => true, 'alwaysArray' => array(), 'keySearch' => false, 'keyReplace' => false, 'namespaceSeparator' => ':'))) && p() && e('1'); // 步骤1:普通XML标签解析 +r($testcaseTest->getXmlTagsArrayTest('test', array('ns' => 'http://example.com', '' => null), array('removeNamespace' => false, 'namespaceSeparator' => ':', 'alwaysArray' => array(), 'autoArray' => true, 'keySearch' => false, 'keyReplace' => false))) && p() && e('1'); // 步骤2:包含命名空间的XML标签解析 +r($testcaseTest->getXmlTagsArrayTest('firstsecondthird', array('' => null), array('removeNamespace' => true, 'autoArray' => true, 'alwaysArray' => array(), 'keySearch' => false, 'keyReplace' => false, 'namespaceSeparator' => ':'))) && p() && e('1'); // 步骤3:多个相同标签名的XML解析 +r($testcaseTest->getXmlTagsArrayTest('nested', array('' => null), array('removeNamespace' => true, 'autoArray' => true, 'alwaysArray' => array(), 'keySearch' => false, 'keyReplace' => false, 'namespaceSeparator' => ':'))) && p() && e('1'); // 步骤4:复杂嵌套XML标签解析 +r($testcaseTest->getXmlTagsArrayTest('', array('' => null), array('removeNamespace' => true, 'autoArray' => true, 'alwaysArray' => array(), 'keySearch' => false, 'keyReplace' => false, 'namespaceSeparator' => ':'))) && p() && e('0'); // 步骤5:空XML或无子标签情况 \ No newline at end of file