如何在 Yii 2 中测试模型?
How to test models in Yii 2?
比如数据库中有一个tabletbl_identitydocument
,没有链接到其他的:
CREATE TABLE [dbo].[tbl_identitydocument](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](100) NOT NULL,
[FISID] [int] NULL,
CONSTRAINT [PK_tbl_identitydocument] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
此table对应型号IdentityDocument.php
。在模型中有字段的验证,因为它写了一个简单的单元测试。
测试失败并出现错误:
There was 1 error: [yii\base\InvalidParamException] Table not found: []
如何在 Yii 2 中测试模型?也许我做错了什么。
对于测试和 Web 应用程序,我使用相同的数据库。
这是README.md中写的:
Create yii2_advanced_tests database then update it by applying
migrations: codeception/bin/yii migrate
据我了解,通过使用迁移,我需要将工业数据库的结构复制到测试数据库,然后使用固定装置来填充使用迁移创建的 tables?只有在那之后才能对模型进行单元测试?..
已解决。如果在单元测试中不使用fixture,那么可以扩展TestCase
class而不是DbTestCase
,否则fixture loader会导致错误。
比如数据库中有一个tabletbl_identitydocument
,没有链接到其他的:
CREATE TABLE [dbo].[tbl_identitydocument](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](100) NOT NULL,
[FISID] [int] NULL,
CONSTRAINT [PK_tbl_identitydocument] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
此table对应型号IdentityDocument.php
。在模型中有字段的验证,因为它写了一个简单的单元测试。
测试失败并出现错误:
There was 1 error: [yii\base\InvalidParamException] Table not found: []
如何在 Yii 2 中测试模型?也许我做错了什么。
对于测试和 Web 应用程序,我使用相同的数据库。
这是README.md中写的:
Create yii2_advanced_tests database then update it by applying migrations: codeception/bin/yii migrate
据我了解,通过使用迁移,我需要将工业数据库的结构复制到测试数据库,然后使用固定装置来填充使用迁移创建的 tables?只有在那之后才能对模型进行单元测试?..
已解决。如果在单元测试中不使用fixture,那么可以扩展TestCase
class而不是DbTestCase
,否则fixture loader会导致错误。