diff --git a/module/testcase/test/lib/testcasezen.unittest.class.php b/module/testcase/test/lib/testcasezen.unittest.class.php index 2015f74d07..f2f2181da8 100755 --- a/module/testcase/test/lib/testcasezen.unittest.class.php +++ b/module/testcase/test/lib/testcasezen.unittest.class.php @@ -2071,6 +2071,49 @@ class testcaseZenTest } } + /** + * Test createFreeMindXmlDoc method. + * + * @param int $productID + * @param string $productName + * @param array $context + * @access public + * @return object + */ + public function createFreeMindXmlDocTest(int $productID, string $productName, array $context): object + { + global $tester; + + try { + // 获取testcase的zen对象实例 + $zenClass = initReference('testcase'); + $zenInstance = $zenClass->newInstance(); + + // 设置必要的属性 + $zenInstance->app = $tester->app; + + // 使用反射调用protected方法 + $reflection = new ReflectionClass($zenInstance); + $method = $reflection->getMethod('createFreeMindXmlDoc'); + $method->setAccessible(true); + + // 调用方法 + $result = $method->invoke($zenInstance, $productID, $productName, $context); + + if(dao::isError()) return dao::getError(); + + return $result; + } catch (Exception $e) { + $errorObject = new stdClass(); + $errorObject->error = $e->getMessage(); + return $errorObject; + } catch (Error $e) { + $errorObject = new stdClass(); + $errorObject->error = $e->getMessage(); + return $errorObject; + } + } + /** * Test getFieldsForExportTemplate method. * diff --git a/module/testcase/test/zen/createfreemindxmldoc.php b/module/testcase/test/zen/createfreemindxmldoc.php new file mode 100755 index 0000000000..7b5144c6d1 --- /dev/null +++ b/module/testcase/test/zen/createfreemindxmldoc.php @@ -0,0 +1,37 @@ +#!/usr/bin/env php +', $context @DOMDocument + +*/ + +include dirname(__FILE__, 5) . '/test/lib/init.php'; +include dirname(__FILE__, 2) . '/lib/testcasezen.unittest.class.php'; + +$product = zenData('product'); +$product->id->range('1-5'); +$product->name->range('产品1,产品2,测试产品,Test Product,<产品>'); +$product->status->range('normal'); +$product->gen(5); + +su('admin'); + +$testcaseTest = new testcaseZenTest(); + +$context = array('config' => array(), 'moduleList' => array(), 'caseList' => array(), 'sceneList' => array(), 'topScenes' => array()); + +r(get_class($testcaseTest->createFreeMindXmlDocTest(1, '产品1', $context))) && p() && e('DOMDocument'); +r(get_class($testcaseTest->createFreeMindXmlDocTest(2, '', $context))) && p() && e('DOMDocument'); +r(get_class($testcaseTest->createFreeMindXmlDocTest(3, '测试产品', $context))) && p() && e('DOMDocument'); +r(get_class($testcaseTest->createFreeMindXmlDocTest(0, 'Test Product', $context))) && p() && e('DOMDocument'); +r(get_class($testcaseTest->createFreeMindXmlDocTest(5, '<产品>', $context))) && p() && e('DOMDocument'); \ No newline at end of file