如果你想为你的 Laravel 项目写一些测试,那么你可能需要在某个时候编写一些工厂模式。 当我第一次听到工厂一词时,我不知道它的含义和作用,更不用说了解它们可以为你的测试带来的好处了。
假设你有一个产品 Controller,该控制器具有一种存储方法来保存新产品的详细信息。 产品可能具有产品代码,标题,价格,描述和标签等属性,这些都在请求中发送到 store 方法。
如果你想测试这个 endpoint,可以创建一个属性数组,然后在 POST 请求中发送它
$product = [
'product_code' => 'ABC123',
'title' => 'My Amazing Product',
'price' => 100,
'description' => 'This product will change the way you wash your dishes forever',
'tagline' => 'Voted best in category'
];
$response = $this->post(route('products.store'), $product);
// 你的断言
$response->assertSuccessful();
这么做没问题。
但是如果你想在另一个测试中使用该 product,比如测试更新 product,你不得不在下一个测试方法中复制该数组, 或者可以将其提取到测试的 setUp () 方法中 并使其成为 $this->product 以重复利用。
如果你还有另一个测试类要测试将 product 添加到 category 中,那你该怎么办?怎样才能重用你的产品代码?你会如何定义不同模型之间的关系? 幸运的是,工厂模式可以解决这些问题。
Creating a factory
课程目录
章节1 Python与消息中间件概述
课时1消息中间件初识06:48
课时2常见消息中间件比较08:00
课时3消息中间件常见概念理解07:26
章节2: Python与消息中间件之Redis
课时4Redis常用操作和命令10:42
课时5Python Redis消息队列开发11:10
课时6Redis安装与配置17:03
课时7Redis简介与应用场景10:19
章节3: Python与消息中间件之Kafka
课时8Python Kafka消息队列开发12:15
课时9Kafka相关概念解释09:02
课时10Kafka安装与配置08:38
课时11Kafka简介与应用场景08:45
章节4: 消息中间件实践:日志处理告警平台
课时12将异常日志事件写入Redis队列04:41
课时13将Redis中事件取出发送邮件告警11:48
课时14从kafka中取出日志并进行实时解析06:08
课时15采集日志并且写入kafka队列07:34
课时16日志处理告警平台架构详解06:27
下载地址:百度云盘