【TP5.1】单元测试

简介: 【TP5.1】单元测试

文件我就放到资源里边了,需要的去下载https://download.csdn.net/download/fangkang7/10759068

 

 

创建test模块

并写index控制器

image.png

源码:

<?php
namespace app\test\controller;
use think\Controller;
use Request;
class Index extends Controller
{
    public function index(Request $request)
    {
        return view();
    }
    public function execute(Request $request)
    {
        $arr = $request::param();// 注意这里
        $namespace  = $arr['namespace'];
        $className  = $arr['className'];
        $action     = $arr['action'];
        $param      = $arr['param'];
        // 判断 命名空间写全了  类命名空间完善
        $class = ($className == "") ? $namespace : $namespace.'\\'.$className;
        // 要提换的值  需要的结果
        $class = str_replace("/", "\\", $class);
        // 创建需要测试的类
        $service = new $class();
        // 参数的解析
        $param = ($param == "") ? [] : explode('|', $param) ;
        // 执行测试类方法
        $data = call_user_func_array([$service, $action], $param);
        // 输出
        return (is_array($data)) ? json_encode($data) : var_dump($data);
    }
}

前端代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <script type="text/javascript" src="__ADMIN__static/js/jquery.js"></script>
    <title>Document</title>
  </head>
  <body>
      <h1>不区分大小写</h1>
      <br>
      命名空间:<input type="text" value='' style="width:300px" id='namespace' placeholder="如:app\index\controller 或app\index\controller\Index">可以写全,然后下面类名不用些<br>
      类名:<input type="text" id='className' placeholder="如:index ">命名空间全可以不用写<br>
      测试方法名:<input type="text" id='action' placeholder="index"><br>
      传递参数以 | 分割:<input type="text" placeholder="如: 1|2|3" id='param'><br>
      <br>
      <input type="button" name="" value="测试" onclick="test()">
  </body>
  <script type="text/javascript">
    console.log(`{:URL('test/index/execute')}`);
      function test() {
          var namespace = $("#namespace").val();
          var className = $("#className").val();
          var action  = $("#action").val();
          var param   = $("#param").val();
          window.location.href = `{:url('test/index/execute')}?namespace=${namespace}&className=${className}&action=${action}&param=${param}`;
      }
  </script>
</html>

image.png

文件我就放到资源里边了,需要的去下载https://download.csdn.net/download/fangkang7/10759068

相关文章
|
5月前
|
测试技术 开发者
单元测试问题之测试不够如何解决
单元测试问题之测试不够如何解决
|
4月前
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
52 2
|
5月前
|
Java 测试技术 程序员
测试气味Test Smells-整洁单元测试
摘要:本文讨论了代码中的“Code Smell”现象,即可能表明代码质量问题的模式。这些包括重复代码、过长函数、过大类、过长参数列表等。识别并重构Code Smell有助于提升代码质量和可维护性。在单元测试中,也有类似的“测试味道”问题,如无信息的测试名称、缺少arrange-act-assert结构、不恰当的变量名和重复使用以及杀虫剂效应。好的单元测试应有明确的命名、遵循arrange-act-assert模式、使用有意义的变量名,并避免重复测试同一情况,以提供有价值的错误信息。
|
5月前
|
Java 测试技术
使用assert函数进行单元测试
使用assert函数进行单元测试
|
7月前
|
测试技术 数据库
参数化单元测试
参数化单元测试
46 0
测试需要做单元测试吗?
我的回答:测试需要做单元测试,但要综合评估团队成员技能、个人意愿、项目迭代周期以及协作默契程度等很多因素,用合适的方法和手段在合适的时机切入,而不是一味强推。
测试需要做单元测试吗?
|
测试技术 PHP
TP5.0安装testing 单元测试 报错
原因:使用了比较高版本的php,topthink/tesing v1.x仅限php7.1使用 太高太低都会出现报错
137 0
|
Java 测试技术 Maven
一次单元测试优化的过程总结
本文将介绍淘宝用户运营平台团队最近在实践单元测试过程中遇到的一个问题。
426 0
一次单元测试优化的过程总结
|
测试技术
Pytest单元测试框架如何实现参数化
Pytest单元测试框架如何实现参数化
101 0
|
设计模式 敏捷开发 自然语言处理
单元测试,只是测试吗?
推广单元测试,仅仅达到单测覆盖率是远远不够的,我们还要学习写&quot;易于测试&quot;的代码,以及&quot;好&quot;的测试,这样才能让单测真正发挥作用。本文将分享作者关于单元测试的思考与实践。
2377 0
单元测试,只是测试吗?