使用带有rspec的pry-rescue显示出奇怪的代码点

时间:2017-01-17 16:07:13

标签: ruby-on-rails rspec pry pry-rails

当规范失败时,我们正试图在rspec内部使用pry-rescue来获取调试器。

现在这种期望失败了:

    @RunWith(PowerMockRunner.class)
    @SuppressStaticInitializationFor({"javax.faces.component.UIViewRoot", "javax.faces.component.UIComponent", "javax.faces.component.UIComponentBase"})
    @PrepareForTest({TestedClass.class, FacesContext.class, UIViewRoot.class, UIComponentBase.class, UIComponent.class, Locale.class})
    public class TestedClassTest {

        private final FacesContext facesContext = Mockito.mock(FacesContext.class);
        private final UIViewRoot uiViewRoot = Mockito.mock(UIViewRoot.class);
        private final Locale locale = PowerMockito.mock(Locale.class);

    private final TestedClass instance = new TestedClass();

    @Before
    public void setUp() {
        PowerMockito.mockStatic(FacesContext.class);

    Mockito.when(FacesContext.getCurrentInstance()).thenReturn(facesContext);

        Mockito.when(facesContext.getViewRoot()).thenReturn(uiViewRoot);
      Mockito.when(uiViewRoot.getLocale()).thenReturn(locale);
    }

    /**
     * Test of getLocale method, of class TestedClass.
     */
    @Test
    public void testGetLocale() {

        assertEquals(locale, instance.getLocale());
    }
}

pry确实打开了,但pry所在的代码点看起来像这样:

 expect(page).to have_content('Thanks for signing up!')

这显然不是失败规范的代码。从这里开始,我们只能“向上”。

我们预计会在失败的规范中结束(例如在此指出:Start ruby debugger if rspec test fails)。

为什么上述事情发生了呢?我们做错了什么?

我们使用的是rspec 3.4.0,pry 0.10.3和pry-rescue 1.4.4。

0 个答案:

没有答案