我正在为Symfony中的API编写一些功能测试,这些测试依赖于数据库中的数据。看起来这样做的普遍接受的方法是使用Fixtures并在测试之前加载灯具。Symfony2测试:为什么我应该使用灯具而不是直接在测试中管理数据?
创建一个适合我所有测试的强大的Fixture类库似乎是相当艰巨和不切实际的。我使用的是LiipFunctionalTestBundle,所以我只加载我需要的灯具,但它只是让事情稍微容易一些。
例如,对于某些测试,我可能需要1个用户存在于数据库中,以及其他我可能需要的测试3.除此之外,我可能需要每个用户具有稍微不同的属性,但这一切都取决于考试。
我真的很想刚刚创建我需要按需每个测试,因为我需要它的数据。我不想用我不需要的任何数据来污染数据库,这可能是使用Fixtures的一个副作用。
我的解决办法是use the container以访问主义和运行断言之前设置我的对象在每个测试。
由于我无法预见的任何原因,这是一个可怕的决定吗?这似乎是一个相当大的问题,正在让写作测试变得很痛苦。
另一种尝试和使用this port of Factory Girl for PHP的可能性,但它似乎并没有很大的追随,即使Factory Girl在Ruby社区被广泛用于解决这个相同的问题。
你的方法没有问题。去适合你的东西吧。如果开始遇到@AlpineCoder指出的一些问题,那么很容易就可以转换。 – Cerad 2015-02-24 17:02:33
嗨@布莱恩你已经看到[这](http://stackoverflow.com/questions/28584393/independent-functional-tests-with-liipfunctionaltestbundle-and-fixtures/28585103#28585103)?你在想什么? – Matteo 2015-02-25 06:42:04
@Matteo我不是那种方法的忠实粉丝。创建所有这些类有很多开销。我真的很喜欢对每个特定测试用例的实体属性进行更细粒度的控制。 – Brian 2015-02-25 13:42:56