有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Mockito模拟构造函数示例

我试图用Mockito实例化一个mock对象。我在文章here中找到了两个例子,但这篇文章对于像我这样的新手来说是一个非常糟糕的例子

有谁能给我一个更好的例子,说明这两个选项中的任何一个是如何实现的


共 (1) 个答案

  1. # 1 楼答案

    做PowerMockito的时候很简单

    public class A {
        private final String name;
    
        public A(String name) {
            this.name= name;
        }
    
        public String sayHello() {
            return "Hi " + this.name;
        }}
    
    @RunWith(PowerMockRunner.class)
    @PrepareForTest(A.class)
    public class MockA {
    
        @Test
        public void testSayHello throws Throwable {
             A a = mock(A.class); 
             when(a.sayHello()).thenReturn("Hi PowerMockito");
             PowerMockito.whenNew(A.class).withArguments(Mockito.anyString()).thenReturn(a);
             assertThat(new A("I am mockcked").sayHello(), equalTo("Yes, you are!"));
        }
    }
    

    依赖关系

    <dependencies>
       <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-module-junit4</artifactId>
          <version>${powermock.version}</version>
          <scope>test</scope>
       </dependency>
       <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-api-mockito</artifactId>
          <version>${powermock.version}</version>
          <scope>test</scope>
       </dependency>
       <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>{mockito.version}</version>
        <scope>test</scope>
    </dependency>
    </dependencies>