【问题标题】:GWTP unit testing using Mockito使用 Mockito 进行 GWTP 单元测试
【发布时间】:2012-04-23 07:04:16
【问题描述】:

我正在尝试使用 Mockito 测试我的 GWTP 应用程序。

我正在尝试模拟我的视图、代理、Placemanager 和事件总线。 我尝试使用 @嘲笑 AbcView abc;

和 Abcview abc = Mockito.mock(AbcView.class);

但是,每次模拟视图都被实例化为 null。 我该如何解决? 一旦视图被模拟,我将能够继续测试我的演示者类,因为演示者的构造函数具有以下代码: getView().setUiHandlers(这个);

所以在视图被正确实例化之前,会抛出空指针异常。

【问题讨论】:

    标签: unit-testing gwt mockito gwt-platform


    【解决方案1】:

    您是否使用 MockitoJUnitRunner 运行程序运行测试?

    @RunWith(MockitoJUnitRunner.class)
    public class ExampleTest {
    
        @Mock
        private List list;
    
        @Test
        public void shouldDoSomething() {
            list.add(100);
        }
    }
    

    【讨论】:

    • 或者运行静态方法:MockitoAnnotations.initMocks()
    • 尝试运行我发布的ExampleTest,通过一个简单的测试看看是否一切正常。
    【解决方案2】:

    除了@Sydney 的回复,您还需要确保AbcView.class 不是最终的。我忘记了最终类是否会导致 null 或运行时错误,但这可能是某种意外行为的原因——无论哪种方式,模拟都不起作用。如果该类不是最终的,您需要确保在该模拟上存根的任何方法都不是最终的。

    【讨论】:

    • 类和方法都不是最终的
    • 尝试包含一些简单的代码 sn-ps,确保包含 @Setup(如果有)、测试方法、通用对象定义和演示者可用的构造函数。哦,你使用的是什么版本的 mockito。最新版本支持构造函数注入,但早期版本不支持。
    • 我正在使用 Mockito 1.9.0。我忘记提到的一件事是我正在使用 GWTTestCase 扩展我的 Testclas,所以我使用 gwtSetup 方法来进行测试设置。那会有什么不同吗?我希望我的测试只是 GWTJunit 测试用例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 2017-11-22
    • 2017-09-19
    • 2019-04-27
    • 1970-01-01
    相关资源
    最近更新 更多