首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java类中导入JunitParamsRunner

如何在Java类中导入JunitParamsRunner
EN

Stack Overflow用户
提问于 2016-09-07 09:27:59
回答 3查看 7.7K关注 0票数 7

这是我在JUnit的第一天。我试着用参数做测试。我有密码:

代码语言:javascript
运行
复制
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

import static org.junit.Assert.assertEquals;

@RunWith(JUnitParamsRunner.class)
public class MoneyParameterizedTest {
    private static final Object[] getMoney() {
        return new Object[] {
                new Object[] {10, "USD"},
                new Object[] {20, "EUR"}
        };
    }
    @Test
    @Parameterized.Parameters(method = "getMoney")
    public void constructorShouldSetAmountAndCurrency(
            int amount, String currency) {
        Money money = new Money(amount, currency);
        assertEquals(amount, money.getAmount());
        assertEquals(currency, money.getCurrency());
    }
}

IntelliJ告诉我:不能解析符号JUnitParamsRunner和方法。进口有问题吗?我正在测试的课程都在同一个包里。

-编辑

我将JunitParamsrunner.class改为Parameterized.class,这是可以的,但是Parametrized.Parameters中的符号'method‘的问题是一样的。

EN

回答 3

Stack Overflow用户

发布于 2016-09-07 12:32:05

JUnitParams (许可Apache 2.0)是一个单独的库,这意味着它不是随JUnit一起提供的。这也意味着您需要确保它在项目的类路径中。如果您使用的是maven (或类似的东西),那么它非常容易,您只需将其作为依赖项添加到pom中,并确保IJ已经获取更改(如果它显示右上角的弹出,则自动或手动):

代码语言:javascript
运行
复制
<dependency>
  <groupId>pl.pragmatists</groupId>
  <artifactId>JUnitParams</artifactId>
  <version>1.0.5</version>
  <scope>test</scope>
</dependency>

否则,自己下载 (单击Download ( JAR )链接)并将其放到类路径中。

请注意,尽管概念相似,但ParameterizedJUnitParams不同,后者试图简化和改进编写参数化JUnit测试的方式。

P.S.:还有一个名为Zohhak的库,它看起来比JUnitParams更灵活,但它是在LGPL 3.0下发布的,因此它取决于您的许可限制。

票数 5
EN

Stack Overflow用户

发布于 2017-11-06 18:18:26

下面是一个应该有效的例子:

代码语言:javascript
运行
复制
import junitparams.JUnitParamsRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
//import org.junit.runners.Parameterized.Parameters;
import static org.junit.Assert.assertEquals;
import junitparams.Parameters;

@RunWith(JUnitParamsRunner.class)
public class MoneyTest {

    private final static int VALID_AMOUNT = 5;
    private final static String VALID_CURRENCY = "USD";

    private static final Object[] getInvalidAmount() {
        return new Integer[][] {{-12387}, {-5}, {-1}};
    }

    @Test(expected = IllegalArgumentException.class)
    @Parameters(method = "getInvalidAmount")
    public void constructorShouldThrowIAEForInvalidAmount(int invalidAmount){
        new Money(invalidAmount, VALID_CURRENCY);
    }

    private static final Object[] getInvalidCurrency(){
        return new String[][]{{null}, {""}};
    }

    @Test(expected = IllegalArgumentException.class)
    @Parameters(method = "getInvalidCurrency")
    public void constructorShouldThrowIAEForInvalidCurrency(String invalidCurrency){
        new Money(VALID_AMOUNT, invalidCurrency);
    }

    private static final Object[] getMoney() {
        return new Object[] {
                new Object[] {10, "USD"},
                new Object[] {20, "EUR"}
        };
    }
    @Test
    @Parameters(method = "getMoney")
    public void constructorShouldSetAmountAndCurrency(
            int amount, String currency) {
        Money money = new Money(amount, currency);
        assertEquals(amount, money.getAmount());
        assertEquals(currency, money.getCurrency());
    }
}
票数 1
EN

Stack Overflow用户

发布于 2020-08-18 14:15:38

你的POM.xml应该喜欢这个..。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>

4.0.0

代码语言:javascript
运行
复制
<groupId>groupId</groupId>
<artifactId>JUnit</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
    <dependency>
        <groupId>pl.pragmatists</groupId>
        <artifactId>JUnitParams</artifactId>
        <version>1.0.5</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>pl.pragmatists</groupId>
        <artifactId>JUnitParams</artifactId>
        <version>1.0.5</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39366130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档