java - 用于 Java 单元测试的 EAN13 生成

标签 java hibernate ean-13

我有一个类Article,它有一个ean字段,该字段用org.hibernate.validator.constraints.EAN注释。

如何生成有效的 ean13 值来对一堆 Article 进行单元测试?

最佳答案

请在下面找到一个测试有效/无效 EAN 代码的示例:

以下网站用于获取有效的 EAN 13 代码:http://www.gomaro.ch/lecheck.htm

也许您也会对 Barcode4j API 感兴趣(例如):http://barcode4j.sourceforge.net/

package ean;

import static org.junit.Assert.assertTrue;

import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

import org.hibernate.validator.constraints.EAN;
import org.junit.Before;
import org.junit.Test;

/**
 * Test EAN 13 constraint. EAN 13 = 12 digits + 1 check digit.
 *
 */
public class testEAN13 {

    private static Validator validator;

    @BeforeClass
    public static void setUp() {
        ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
        validator = vf.getValidator();
    }

    @Test
    public void validEAN() {
        Article product = new Article("7894561330231");
        Set<ConstraintViolation<Article>> violations = validator.validate(product);
        assertTrue(violations.isEmpty());
    }

    @Test
    public void invalidEAN() {
        Article product = new Article("7894561330235");
        Set<ConstraintViolation<Article>> violations = validator.validate(product);
        assertTrue(violations.size() == 1);
    }

    class Article {

        @EAN
        private final String ean;

        private Article(String ean) {
            this.ean = ean;
        }
    }
}

Maven 所需的依赖项:

<dependencies>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.2.2.Final</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.el</artifactId>
        <version>3.0.0</version>
        <scope>test</scope>
    </dependency>

</dependencies>

注意:Hibernate validator 需要表达式语言依赖。

关于java - 用于 Java 单元测试的 EAN13 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33456833/

相关文章:

java - 如何在对象数组列表中找到对象的一个​​元素?

java - Gson 预期为 BEGIN_ARRAY,但对于类型 Byte[] 却是 BEGIN_OBJECT

barcode - 将 EAN-8 转换为 EAN-13

java - 在 Windows 10 上,控制台窗口不接受键盘输入

java - 制作自定义 JOptionPane 对话框时遇到问题

oracle - 抑制 ddl 创建脚本中的 ORA-00942 错误

java - hibernate 中的标准不区分大小写?

java - 如何在不更新optimistic_force_increment hibernate jpa中的实体数据的情况下更改版本?

fonts - Ean 13 字体无法从扫描仪读取

android - 创建android条码阅读器获取数据库信息