提交 5d07f5c7 编写于 作者: W wizardforcel

2020-06-05 16:50:37

上级 41041887
# JUnit 5 @Disabled 测试示例
# JUnit 5 `@Disabled`测试示例
> 原文: [https://howtodoinjava.com/junit5/junit-5-disabled-test-example/](https://howtodoinjava.com/junit5/junit-5-disabled-test-example/)
**JUnit [@Disabled](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Disabled.html)** 注解可用于禁用测试套件中的测试方法。 该注释可以应用于测试类以及各个测试方法。
JUnit [`@Disabled`](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Disabled.html)注解可用于禁用测试套件中的测试方法。 该注释可以应用于测试类以及各个测试方法。
它仅接受**一个可选参数**,它指示此测试被禁用的原因。
## @禁用的测试类别
## `@Disabled`的测试类
`@Disabled`应用于测试类别时,**该类别中的所有测试方法也会自动禁用**
`@Disabled`应用于测试类时,**该类中的所有测试方法也会自动禁用**
```java
import org.junit.jupiter.api.Assumptions;
......@@ -37,13 +37,13 @@ public class AppTest {
![JUnit 5 Disabled Annotation Over Class](img/f89d2d61b89111d2a3f783c12bf6ddb4.png)
JUnit 5 Disabled Annotation Over Class
JUnit 5 类上的`@Disabled`注解
请注意运行次数:2/2(跳过 2 个)。 显然,两个测试都被禁用,因此不执行。
## JUnit 5 @Disabled 测试方法
## JUnit 5 `@Disabled`测试方法
`@Disabled`用于表示当前已禁用带注释的**测试方法,因此不应执行**
......@@ -74,7 +74,7 @@ public class AppTest {
![JUnit 5 Disabled Annotation Over Method](img/ca156a5524c6e5b84062a6eadb029648.png)
JUnit 5 Disabled Annotation Over Method
JUnit 5 方法上的`@Disabled`注解
......
# JUnit 5 @Tag 注释示例
# JUnit 5 `@Tag` 注释示例
> 原文: [https://howtodoinjava.com/junit5/junit-5-tag-annotation-example/](https://howtodoinjava.com/junit5/junit-5-tag-annotation-example/)
JUnit 5 [@Tag](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Tag.html) 可用于从测试计划中过滤测试用例。 它可以帮助针对不同的环境,不同的用例或任何特定要求创建多个不同的测试计划。 您可以通过仅在测试计划中包括那些标记的测试或通过从测试计划中排除其他测试来执行测试集。
JUnit 5 [`@Tag`](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Tag.html) 可用于从测试计划中过滤测试用例。 它可以帮助针对不同的环境,不同的用例或任何特定要求创建多个不同的测试计划。 您可以通过仅在测试计划中包括那些标记的测试或通过从测试计划中排除其他测试来执行测试集。
## 1\. @Tag 注释用法
## 1\. `@Tag`注释用法
1. 我们可以将**应用于测试类或测试方法或同时应用于**
1. 我们可以将**应用于测试类或测试方法或同时应用**
```java
@Tag("development")
......@@ -34,9 +34,9 @@ JUnit 5 [@Tag](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Ta
```
## 2\. 使用@IncludeTags 和@ExcludeTags 创建测试计划
## 2\. 使用`@IncludeTags`和`@ExcludeTags`创建测试计划
我们可以在测试计划中使用 [@IncludeTags](http://junit.org/junit5/docs/current/api/index.html?org/junit/platform/runner/IncludeTags.html)[@ExcludeTags](http://junit.org/junit5/docs/current/api/index.html?org/junit/platform/runner/ExcludeTags.html) 注解来过滤测试或包括测试。
我们可以在测试计划中使用[`@IncludeTags`](http://junit.org/junit5/docs/current/api/index.html?org/junit/platform/runner/IncludeTags.html)[`@ExcludeTags`](http://junit.org/junit5/docs/current/api/index.html?org/junit/platform/runner/ExcludeTags.html)注解来过滤测试或包括测试。
```java
//@IncludeTags example
......@@ -59,7 +59,7 @@ public class MultipleTagsExample
```
要添加多个标签,请在所需注释中传递标签的*字符串数组。*
要添加多个标签,请在所需注释中传递标签的*字符串数组*
```java
@RunWith(JUnitPlatform.class)
......@@ -71,9 +71,9 @@ public class MultipleTagsExample
```
We CAN NOT include both @IncludeTags and @ExcludeTags annotations in single test plan.
我们不能在单个测试计划中同时包含`@IncludeTags``@ExcludeTags注`解。
## 3\. JUnit 5 @Tag 示例
## 3\. JUnit 5 `@Tag`示例
假设我们有 3 个测试,并且我们想在开发环境中运行全部 3 个测试; 但只想在生产中运行一个。 因此,我们将标记测试如下:
......@@ -107,7 +107,7 @@ public class ClassCTest
让我们为两种环境创建测试计划。
#### 测试在生产环境中运行
#### 在生产环境中运行测试
```java
@RunWith(JUnitPlatform.class)
......@@ -121,11 +121,11 @@ public class ProductionTests
![JUnit 5 @Tag Example - Production Tests](img/b9653a407e8fca6e0439e9b25f72b3c3.png)
JUnit 5 @Tag Example – Production Tests
JUnit 5 `@Tag`示例 – 生产测试
#### 测试在开发环境中运行
#### 在开发环境中运行测试
```java
@RunWith(JUnitPlatform.class)
......@@ -139,7 +139,7 @@ public class DevelopmentTests
![JUnit 5 @Tag Example - Development Tests](img/da0d6710958d1a488cf312e55059eaff.png)
JUnit 5 @Tag Example – Development Tests
JUnit 5 `@Tag`示例 – 开发测试
......
# JUnit 5 预期的异常– assertThrows()示例
# JUnit 5 预期的异常 – `assertThrows()`示例
> 原文: [https://howtodoinjava.com/junit5/expected-exception-example/](https://howtodoinjava.com/junit5/expected-exception-example/)
在 JUnit 5 中,要*测试异常情况*,则应使用 [org.junit.jupiter.api.Assertions.assertThrows()](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assertions.html#assertThrows-java.lang.Class-org.junit.jupiter.api.function.Executable-)方法。 *junit 5 异常测试*还有其他方法,但我建议避免使用它们。
在 JUnit 5 中,要*测试异常情况*,则应使用[`org.junit.jupiter.api.Assertions.assertThrows()`](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assertions.html#assertThrows-java.lang.Class-org.junit.jupiter.api.function.Executable-)方法。 *junit 5 异常测试*还有其他方法,但我建议避免使用它们。
## 1\. Junit 5 assertThrows()的语法
## 1\. Junit 5 `assertThrows()`的语法
它断言所提供的`executable`的执行将引发`expectedType`的异常并返回该异常。
......@@ -14,7 +14,7 @@ public static <T extends Throwable> T assertThrows(Class<T> expectedType, Execut
**如果没有引发异常,或者引发了其他类型的异常,则此方法将失败。**
请注意,允许使用相同类型的异常。 例如 如果您期望`NumberFormatException`并且抛出`IllegalArgumentException`,那么该测试也会通过,因为 **NumberFormatException 扩展了 IllegalArgumentException** 类。
请注意,允许使用相同类型的异常。 例如 如果您期望`NumberFormatException`并且抛出`IllegalArgumentException`,那么该测试也会通过,因为`NumberFormatException`扩展了`IllegalArgumentException`类。
## 2\. JUnit 5 预期异常示例
......@@ -32,9 +32,9 @@ void testExpectedException() {
```
如果参数不是有效数字,则此处的可执行代码为`Integer.parseInt("One")`引发`NumberFormatException`。 在上述代码中,`"One"`不是有效数字,因此代码将引发`assertThrows()`方法所期望的异常-因此测试通过。
如果参数不是有效数字,则此处的可执行代码为`Integer.parseInt("One")`引发`NumberFormatException`。 在上述代码中,`"One"`不是有效数字,因此代码将引发`assertThrows()`方法所期望的异常 - 因此测试通过。
## 3\. 期望异常类的超类型
## 3\. 预期异常类的超类型
如前所述,您也可以期望异常类的超类型。 例如 上面的测试也可以用`IllegalArgumentException`编写。
......@@ -52,7 +52,7 @@ void testExpectedExceptionWithSuperType() {
该测试用例也将通过。
## 4\. 期待其他异常类
## 4\. 其他预期异常类
如果可执行代码**抛出任何其他异常类型**,则测试将失败;否则,测试将失败。 甚至**如果测试没有引发任何异常**,那么测试也会失败。
......@@ -131,7 +131,7 @@ Eclipse 测试结果如下图所示:
![JUnit 5 Expected Exception Tests](img/d4f22108b773fc944929b8a82ae7eb7f.png)
JUnit 5 Expected Exception Tests
JUnit 5 预期异常测试
......
......@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/junit5/junit-5-assertions-examples/](https://howtodoinjava.com/junit5/junit-5-assertions-examples/)
**JUnit 5 断言**帮助用测试用例的实际输出来验证期望的输出。 为简单起见,所有 **JUnit Jupiter 断言** [org.junit.jupiter.Assertions](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assertions.html) 类中的静态方法。
**JUnit 5 断言**帮助用测试用例的实际输出来验证期望的输出。 为简单起见,所有 **JUnit Jupiter 断言**[`org.junit.jupiter.Assertions`](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assertions.html)类中的静态方法。
```java
Table of Contents
......@@ -19,9 +19,9 @@ Assertions.assertThrows()
Assertions.fail()
```
## Assertions.assertEquals()和 Assertions.assertNotEquals()示例
## `Assertions.assertEquals()`和`Assertions.assertNotEquals()`示例
使用`Assertions.assertEquals()`断言**期望值和实际值等于**`assertEquals()`针对不同的数据类型(例如, int,short,float,char 等。它还支持传递传递的错误消息,以防万一测试失败。 例如
使用`Assertions.assertEquals()`断言**期望值等于实际值**`assertEquals()`针对不同的数据类型(例如, `int``short``float``char`等。它还支持传递传递的错误消息,以防万一测试失败。 例如:
```java
public static void assertEquals(int expected, int actual)
......@@ -45,7 +45,7 @@ void testCase()
```
类似地,`Assertions.assertNotEquals()`方法用于断言**期望值和实际值不等于**。 与`assertEquals()`相比,`assertNotEquals()`不会针对不同的数据类型重载方法,而仅接受`Object`
类似地,`Assertions.assertNotEquals()`方法用于断言**期望值不等于实际值**。 与`assertEquals()`相比,`assertNotEquals()`不会针对不同的数据类型重载方法,而仅接受`Object`
```java
public static void assertNotEquals(Object expected, Object actual)
......@@ -69,9 +69,9 @@ void testCase()
```
## Assertions.assertArrayEquals()示例
## `Assertions.assertArrayEquals()`示例
`assertEquals()`相似,assertArrayEquals()对数组执行相同的操作,即断言**期望数组与实际数组等于**。 它还具有针对不同数据类型的重载方法,例如 `boolean[]``char[]``int[]`等。它还支持在测试失败的情况下传递要打印的错误消息。 例如
`assertEquals()`相似,`assertArrayEquals()`对数组执行相同的操作,即断言**期望数组等于实际数组**。 它还具有针对不同数据类型的重载方法,例如 `boolean[]``char[]``int[]`等。它还支持在测试失败的情况下传递要打印的错误消息。 例如:
```java
public static void assertArrayEquals(int[] expected, int[] actual)
......@@ -94,9 +94,9 @@ void testCase()
```
## Assertions.assertIterableEquals()示例
## `Assertions.assertIterableEquals()`示例
它断言**期望和实际的可迭代项非常相等**。 高度相等意味着集合中元素的数量和顺序必须相同; 以及迭代元素必须相等。
它断言**期望和实际的可迭代项 高度相等**。 高度相等意味着集合中元素的数量和顺序必须相同; 以及迭代元素必须相等。
它还有 3 种重载方法。
......@@ -127,7 +127,7 @@ void testCase()
```
## Assertions.assertLinesMatch()示例
## `Assertions.assertLinesMatch()`示例
它断言**期望的字符串列表与实际列表**相匹配。 将一个字符串与另一个字符串匹配的逻辑是:
......@@ -146,9 +146,9 @@ void testCase()
```
## Assertions.assertNotNull()和 Assertions.assertNull()示例
## `Assertions.assertNotNull()`和`Assertions.assertNull()`示例
`assertNotNull()`断言 **actual 不为空**。 类似地,`assertNull()`方法断言 **actual 为空**。 两者都有三种重载方法。
`assertNotNull()`断言**实际值不为空**。 类似地,`assertNull()`方法断言**实际值为空**。 两者都有三种重载方法。
```java
public static void assertNotNull(Object actual)
......@@ -182,9 +182,9 @@ void testCase()
```
## Assertions.assertNotSame()和 Assertions.assertSame()示例
## `Assertions.assertNotSame()`和 `Assertions.assertSame()`示例
`assertNotSame()`断言**预期的和实际的不引用同一对象。** 。 同样,`assertSame()`方法断言,**预期和实际指的是完全相同的对象。** 。 两者都有三种重载方法。
`assertNotSame()`断言**预期和实际不引用同一对象**。 同样,`assertSame()`方法断言,**预期和实际引用完全相同的对象**。 两者都有三种重载方法。
```java
public static void assertNotSame(Object actual)
......@@ -219,7 +219,7 @@ void testCase()
```
## Assertions.assertTimeout()和 Assertions.assertTimeoutPreemptively()示例
## `Assertions.assertTimeout()`和 `Assertions.assertTimeoutPreemptively()`示例
`assertTimeout()``assertTimeoutPreemptively()`均用于测试长时间运行的任务。 如果测试用例中的给定任务花费的时间超过指定的持续时间,则测试将失败。
......@@ -257,9 +257,9 @@ void testCase() {
```
## Assertions.assertTrue()和 Assertions.assertFalse()示例
## `Assertions.assertTrue()`和`Assertions.assertFalse()`示例
`assertTrue()`断言`BooleanSupplier`提供的`supplied condition is true`或布尔条件为真。 类似地,`assertFalse()`断言**提供的条件为假**。 它具有以下重载方法:
`assertTrue()`断言`BooleanSupplier`提供的条件为真。 类似地,`assertFalse()`断言**提供的条件为假**。 它具有以下重载方法:
```java
public static void assertTrue(boolean condition)
......@@ -305,7 +305,7 @@ private static boolean getResult () {
```
## Assertions.assertThrows()示例
## `Assertions.assertThrows()`示例
它断言所提供的`Executable`的执行将引发`expectedType`的异常并返回该异常。
......@@ -325,7 +325,7 @@ void testCase() {
```
## Assertions.fail()示例
## `Assertions.fail()`示例
`fail()`方法仅使测试失败。 它具有以下重载方法:
......
......@@ -2,11 +2,11 @@
> 原文: [https://howtodoinjava.com/junit5/junit-5-assumptions-examples/](https://howtodoinjava.com/junit5/junit-5-assumptions-examples/)
**JUnit 5 假设**类提供静态方法来支持基于假设的条件测试执行。 假设失败会导致测试中止。 [假设](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assumptions.html)通常在继续执行给定测试方法没有意义的情况下使用。 在测试报告中,这些测试将被标记为通过。
JUnit 5 `Assumptions`类提供静态方法来支持基于假设的条件测试执行。 假设失败会导致测试中止。 [假设](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assumptions.html)通常在继续执行给定测试方法没有意义的情况下使用。 在测试报告中,这些测试将被标记为通过。
JUnit jupiter `Assumptions`类具有两个这样的方法:`assumeFalse()``assumeTrue()`
A third method [assumeThat()](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assumptions.html#assumingThat-boolean-org.junit.jupiter.api.function.Executable-) is in `Experimental` state and might be confirmed in future.
第三个方法[`assumeThat()`](http://junit.org/junit5/docs/current/api/org/junit/jupiter/api/Assumptions.html#assumingThat-boolean-org.junit.jupiter.api.function.Executable-)处于`Experimental`状态并且可能在未来得到确认。
```java
Table of Contents
......@@ -15,9 +15,9 @@ Assumptions.assumeTrue()
Assumptions.assumeFalse()
```
## JUnit 5 的 Assumptions.assumeTrue()
## JUnit 5 的`Assumptions.assumeTrue()`
`assumeTrue()`验证给定的假设为 true,如果假设为 true,则进行测试,否则测试执行将中止。
`assumeTrue()`验证给定的假设为`true`,如果假设为`true`,则进行测试,否则测试执行将中止。
它具有以下重载方法。
......@@ -56,11 +56,11 @@ public class AppTest {
```
## JUnit 5 的 Assumptions.assumeFalse()
## JUnit 5 的`Assumptions.assumeFalse()`
`assumeFalse()`会验证给定的假设是否为假,如果假设为假,则执行测试,否则测试执行将中止。 它的工作与`assumeTrue()`相反。
It has following overloaded methods.
它具有以下重载方法。
```java
public static void assumeFalse(boolean assumption) throws TestAbortedException
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册