我开始致力于改进我的测试实践,并且一直在阅读有关在Yii框架和Rails中使用Fixtures的信息。虽然我理解了固定装置的基本思想 - 他们在每次测试之前加载了一组特定的数据 - 但我不清楚预测试数据库状态会发生什么。虽然这些测试显然不会在生产实例上运行,但在开发模型中仍然可能存在一些我不希望每次运行某些测试时都被删除的数据。你能帮我清理一下有关灯具和单元测试的背景知识吗?
答案 0 :(得分:1)
您的测试针对您的测试数据库运行,而您的开发工作则会影响您的开发环境(如数据库yml文件中所设置)。测试环境就在那里,以便您可以将其置于已知状态,而不会影响您在“正在测试”正在运行的应用程序时使用的任何数据。
希望有助于清除它。
答案 1 :(得分:1)
基本上,您从CDbTestCase派生的任何测试类都将尝试在其setUp函数中导入fixture。
值得注意的是,如果你没有在你自己的类中声明$ fixtures变量,它将导入你拥有的整套灯具(如果你有很多测试,那么最好只加入什么速度)你需要什么)
如果你有预先要求特定数据的表,并且你在测试期间没有更改它(例如在Products表中),那么你只需要确保表在数据库中并且你不要为它创造一个固定装置。 Yii不会碰到桌子,可以按预期使用。