0

我有一个问题,我想通过测试方法使用 GET 方法和 POST 发送请求。我使用了参数化,但我得到了信息 java.lang.Exception: Method simpleMessage should have no parameters

  @Test
    @ParameterizedTest
    @ValueSource(strings = {"true", "false"})
    public void simpleMessage (boolean isPost) {
        verifyIdOdpEqual(isPost,1243, "message");
    }
4

1 回答 1

5

我也不太了解您要实现的目标,但是您的代码几乎没有问题:

  1. 通过@ParameterizedTest 和@ValueSource 的存在,我假设您使用Junit5。同时,您似乎使用 junit4 的注释标记了您的方法(因为只有在这种情况下,您引用的文本才会出现异常)。
  2. 当方法使用@ParametrizedTest 注解时,@Test 是多余的

您有 2 个选项来解决上述所有问题:

  1. 如果您想使用 junit5,那么您需要删除 @Test 注释并确保您的测试由支持 junit5 的运行器启动更多信息。例子:


package test;

import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

public class TestTest {

    @ParameterizedTest
    @ValueSource(booleans =  {true, false})
    public void test(boolean data) {
        System.out.println(data);
    }
}


  1. 如果要使用 junit4,则需要删除 @ParameterizedTest 和 @ValueSource 注释并重写测试以使用参数化运行器更多信息
于 2020-01-28T23:14:10.233 回答