在Symfony2 RESTful应用程序或任何其他应用程序中进行测试哪种方式更好。
实施例:
我想测试sObserved = Replace(sObserved, "&", "&")
sObserved = Replace(sObserved, ";", ";")
sObserved = Replace(sObserved, "&;", "&")
,其中包含以下操作:PostController
,getPostsAction()
,getPostAction()
,putPostAction()
,postPostAction()
。
所以我创建了deletePostAction()
。
问题是:
a)我应该为每个动作创建单独的测试吗? Ex - 测试更新:
class PostControllerTest
b)或者在一次测试中测试几个动作(每个通过控制器)?例如:
我认为第一个选项没问题,因为我在一次测试中只测试一个控制器动作。我完全知道我想测试什么。 但在第二种情况下,我可以更快地进行测试,并且不需要使用固定装置和实体管理器。
哪种方式更好,为什么?
答案 0 :(得分:1)
我无法确定什么是最适合您的解决方案,但我认为一个好主意就是让它更具功能性。 您可以使测试遵循流程,例如:
完成一个完整的循环而不留下垃圾数据。
我有一个开源项目我完全喜欢这个,我也使用一些特性帮助我创建对象并验证来自我的Rest调用的响应。 您可以在此处查看真实的测试:https://github.com/renatomefidf/sammui/blob/master/src/Renatomefi/TranslateBundle/Tests/Controller/ManageControllerTest.php
通过使用phpunit中的@depends注释,您可以确定流程并确保您拥有测试的逻辑路径。
我希望这会对你有所帮助,如果你有更多问题请告诉我!