我们的应用程序中有一个特定的流程,它使用相关数据进行单独的调用。它们在不同的控制器中,但与同一个用户交互。
我们正在尝试构建一个测试来确认整个流程是否按预期工作。我们已经为组成部分构建了单独的测试,但想要对整个流程进行测试。
例如,我们有一个用户签到工作(签入)然后构建一个小部件(widgetize)。我们有一些方法可以过滤我们的用户,这些用户已签入,以及已小部件化(和签入)的用户。我们可以使用 FactoryGirl 构建小对象以确保过滤器正常工作,但我们想要一个测试,让一个用户签入,另一个用户签入,第二个小部件化,以便我们可以确认我们的过滤方法只捕获用户我们希望它捕获。
我的第一个想法是构建一个 rspec 测试,它只是从 widgetize 规范中直接调用 checkin,然后确认过滤方法——但我发现 rspec 不允许跨控制器调用(或者至少我无法弄清楚如何使其工作;发布和获取该控制器不起作用)。此外,人们告诉我这是非常糟糕的做法。
我应该如何进行测试?