2016-06-07 45 views
0

我在ruby中调用了一些框架方法和类。我面临的问题是一些方法可能会抛出异常,因为他们联系不在我控制范围内的服务。我希望在测试的拆解方法中实际上有测试的结果(成功,失败和XXX),所以我可以根据它做一些事情。有没有一种方法可以做到这一点(不同于将整个测试包裹在开始/救援块中)?红宝石测试失败,但有异常

回答

0

您试图测试的代码示例可能有所帮助。但取决于您正在使用的框架API,您可以将尝试联系服务的方法存根,这会引发异常。如果您正在调用您正在尝试测试的一种方法,并且它也引发了一个异常(不是非常干的/ SRP代码),那么它会变得棘手。如果是这种情况,可以围绕该方法调用进行开始/救援,或者将该调用存根到该更大的方法。做后者的问题是它可能会更加模糊你测试的价值。

+0

我们在谈论集成测试。他们可能会很长。更具体的 - 硒UI测试。我面临的问题是,当我调用与UI交互的方法时,可能会失败,在这种情况下,我想截取屏幕截图。存根会杀死测试的原因,包装单独的方法我开始/营救将要求每个呼叫被包裹,这也是不愉快的。正如我所说,我可以将整个测试方法包装在开始/救援中,但这对我来说确实不太合适。 –

+0

用VCR或甚至标准的rspec mocks来存储外部服务并不少见。单元测试与否。这个想法是测试你的代码。你试图捕捉异常的事实引发了对测试有效性的同样关注 – agmcleod