Sé cómo burlarse de los métodos estáticos de una clase utilizando PowerMock.

Pero quiero burlarse de los métodos estáticos de varias clases en una clase de prueba utilizando JUnit y PowerMock.

¿Alguien puede decirme que es posible hacerlo y cómo hacerlo?

  • Usted acaba de hacer en la misma forma en que se burlan de los métodos de una sola de las clases. Dónde estás atascado?
  • Cuando se utiliza powermock, se debe agregar esta anotación a la clase de prueba @PrepareForTest(ClassThatContainsStaticMethod.class). Pero no podemos especificar varias anotaciones. Entonces, ¿cómo hacerlo?
InformationsquelleAutor Newbie | 2012-04-26

3 Comentarios

  1. 237

    Acaba de hacer @PrepareForTest({Class1.class,Class2.class}) para múltiples clases.

    • llaves! eso es lo que me faltaba.
    • También no se olvide de cambiar a PowerMockRunner con @RunWith(PowerMockRunner.class) en el nivel de clase
    • no siempre es necesario. Puede definir una regla en lugar de hacer el trabajo por encima de –@Rule public PowerMockRule rule = new PowerMockRule();
    • en kotlin @PrepareForTest(Class1::class, Class2::class))
    • También es mejor usar @PrepareOnlyThisForTest en lugar de @PrepareForTest. Este último también se modifica superclases, que no es normalmente necesario.
  2. 10
    @Test
     @PrepareForTest({Class1.class, Class2.class})
     public final void handleScript() throws Exception {
        PowerMockito.mockStatic(Class1.class);
        PowerMockito.mockStatic(Class2.class);

    etc…

    • Como para PowerMock 1.6.5 hay problemas utilizando @PrepareForTest en el método de nivel (sólo funciona en el nivel de clase para mí)
  3. 2

    En java con powermock/junit, uso @PrepareForTest({}) con tantas clases estáticas como quiera, array ({}).

    @RunWith(PowerMockRunner.class)
    @PrepareForTest({XmlConverterA.class, XmlConverterB.class})
    class TransfersServiceExceptionSpec {
    
    }

    He utilizado powermock con scala/junit, como scalatest no tiene integración con powermock.

    @RunWith(classOf[PowerMockRunner])
    @PrepareForTest(Array(classOf[XmlConverterA], classOf[XmlConverterB]))
    class TransfersServiceExceptionSpec {
    
      @Test
      def test() {
      }
    }

Dejar respuesta

Please enter your comment!
Please enter your name here