小编she*_*hen的帖子

junit-bom 和 junit platform 的用途是什么?我应该将它们包含在 gradle 依赖项中吗?

我正在阅读Junit 5 用户指南。它引导我找到JUnit 5 Jupiter Gradle Sample,这是将 Junit 5 与 Gradle 结合使用的最简单示例。在build.gradle文件中,有 2 个依赖项,junit-jupiter并且junit-bom. 而在testtask中,它也调用了useJUnitPlatform()function。

plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    testImplementation(platform('org.junit:junit-bom:5.7.1'))
    testImplementation('org.junit.jupiter:junit-jupiter')
}

test {
    useJUnitPlatform()
    testLogging {
        events "passed", "skipped", "failed"
    }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这junit-jupiter是聚合工件,它提取以下 3 个工件,

  1. junit-jupiter-api(编译依赖)
  2. junit-jupiter-engine(运行时依赖)
  3. junit-jupiter-params(用于参数化测试)

所以我想junit-jupiter在我的项目中运行 JUnit Jupiter 已经足够了(如果我错了,请纠正我)。我想知道这里是什么junit-bom以及JUnitPlatform有什么用?我可以简单地摆脱它们吗?感谢大家:)

java junit gradle junit5 junit-jupiter

19
推荐指数
1
解决办法
8394
查看次数

在其包装内真的可以"无公共舱"吗?

在"Think in Java"中,作者说:

你只需将"public"关键字留在课堂上,在这种情况下它具有包访问权限.(该类只能在该包中使用.)

为了证明这一点,我创建了一个公共类和一个非公共类:

package com.ciaoshen.thinkinjava.chapter7;
import java.util.*;

//My public class
public class PublicClass {
    //default constructor
    public PublicClass(){
        System.out.println("Hello, I am PublicClass.");
    }
}

//Non public class
//It should be package reachable
class PackageReachableClass {
    //default constructor
    PackageReachableClass(){
        System.out.println("Hi, I am PackageReachableClass.");
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我从同一个包中的另一个类调用它们时:

public class InPackageClass {

/**
 *  MAIN
 *  @param args void
 */
public static void main(String[] args){
    //pubic class can be reached from anywhere
    PublicClass newPublicClass=new PublicClass();
    //non-public-class should …
Run Code Online (Sandbox Code Playgroud)

java

6
推荐指数
1
解决办法
216
查看次数

困惑:@Override无法在java中转换为Annotation?

我试图在java中测试@Override注释.首先,我overloadedMethodOverload类中重载,有和没有参数.

public class Overload {

    //overloaded method with and without param
    public void overloadedMethod(){
        System.out.println("overloadedMethod(): No parameter");
    }

    public void overloadedMethod(String s){
        System.out.println("overloadedMethod(): String");
    }

}
Run Code Online (Sandbox Code Playgroud)

然后Override是该类的子Overload类.我试图覆盖其中一个overloadedMethod.该@Override注释被添加到确保这种方法是否正确重写.

public class Override extends Overload{

    //now I want to override
    @Override
    public void overloadedMethod(String s){
        System.out.println("overloadedMethod(): String is overrided");
    }

    /**
     *  MAIN
     *  @param args void
     */
    public static void main(String[] args){
        Override myOverride=new Override();
        //test
        myOverride.overloadedMethod();
        myOverride.overloadedMethod("Hello"); …
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
2
解决办法
3658
查看次数

为什么draggable属性设置为false时仍然会触发drag和dragstart事件?

我有这个草图应用程序,它允许用户通过按下和移动鼠标来绘制一些图片。

/* create grids in canvas */
const initCanvas = function() {
    const canvas = document.querySelector('.canvas');
    /* clear old canvas if any */
    canvas.innerHTML = '';
    /* create new canvas */
    let row = parseInt(document.querySelector('textarea.canvasRow').value);
    let column = parseInt(document.querySelector('textarea.canvasColumn').value);
    if (!row || !column) return;
    canvas.style['grid-template-columns'] = `repeat(${column}, 1fr)`;
    canvas.style['grid-template-rows'] = `repeat(${row}, 1fr)`;
    for (let i = 0; i < (row * column); i++) {
        let cell = document.createElement('div');
        cell.classList.add('cell');
        cell.draggable = false; // prevent cell from being dragged
        cell.addEventListener('mousedown', draw, …
Run Code Online (Sandbox Code Playgroud)

html javascript css

5
推荐指数
1
解决办法
811
查看次数

以这种方式包含头文件,这是一个好习惯吗?

在gumbo html parser source code中,我看到了一些#include像这样的奇怪用例。它们只是在数组定义块中包含头文件。

const char* kGumboTagNames[] = {
#include "tag_strings.h"
    "",  // TAG_UNKNOWN
    "",  // TAG_LAST
};

static const unsigned char kGumboTagSizes[] = {
#include "tag_sizes.h"
    0,  // TAG_UNKNOWN
    0,  // TAG_LAST
};
Run Code Online (Sandbox Code Playgroud)

然后在tag_string.h文件中列出所有合法的 html 标签,

"html",
"head",
"title",
"base",
"link",
"meta",
"style",
"script",
"noscript",
...
...
Run Code Online (Sandbox Code Playgroud)

我知道它有效,但仍然想知道这是导入外部数据的传统方式,还是只是一种不寻常的破解?

c header

2
推荐指数
1
解决办法
67
查看次数

LI 元素之间的 html 导航列表中 &lt;!-- --&gt; 的用途是什么?

我看到一个有趣的导航列表示例如下(省略了css),

<nav class="navigation">
    <ul>
        <li><a href="#">Profile</a></li><!--
        --><li><a href="#">Settings</a></li><!--
        --><li><a href="#">Notifications</a></li><!--
        --><li><a href="#">Logout</a></li>
    </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

乍一看,我以为<!--and -->Between<li>标签可能是错误留下的。作者刚刚忘记清除评论了。

在此输入图像描述

但当我把它们排除在外时,导航栏看起来就不一样了。看来是故意添加的。

在此输入图像描述

由于我不是 HTML 专家,所以有人可以解释一下吗?这是常见的伎俩吗?

html css

1
推荐指数
1
解决办法
76
查看次数

标签 统计

java ×3

css ×2

html ×2

c ×1

gradle ×1

header ×1

javascript ×1

junit ×1

junit-jupiter ×1

junit5 ×1