使用正确的输入定义正常情况下的预期和期望输出。
-
现在,通过声明一个类来实现测试,将其命名为任何东西(通常类似于TestAddModule),并向其添加testAdd方法(即如下所示):
- 编写一个方法,并在其上方添加@Test注释。
- 在该方法中,运行二进制求和和 。
assertEquals(expectedVal,calculatedVal)
-
通过运行方法测试方法(在 Eclipse 中,右键单击,选择“运行方式→ JUnit 测试”)。
//for normal addition @Test public void testAdd1Plus1() { int x = 1 ; int y = 1; assertEquals(2, myClass.add(x,y)); }
-
根据需要添加其他案例。
- 测试如果存在整数溢出,则二进制和不会引发意外异常。
-
测试您的方法是否正常处理 Null 输入(下面的示例)。
//if you are using 0 as default for null, make sure your class works in that case. @Test public void testAdd1Plus1() { int y = 1; assertEquals(0, myClass.add(null,y)); }
我为IntelliJ和Eclipse提供了这篇文章。
日蚀:
要为您的项目进行单元测试,请按照以下步骤操作(我正在使用Eclipse来编写此测试):
1- 单击“新建 -> Java 项目”。
2-记下您的项目名称,然后单击完成。
3-右键单击您的项目。然后,单击“新建 ->类”。
4-写下您的班级名称,然后单击完成。
然后,像这样完成该类:
public class Math {
int a, b;
Math(int a, int b) {
this.a = a;
this.b = b;
}
public int add() {
return a + b;
}
}
5- 单击文件 -> 新建 -> JUnit 测试用例。
6-检查设置()并单击完成。SetUp() 将是初始化测试的地方。
7-单击“确定”。
8-在这里,我只是简单地添加7和10。所以,我预计答案是17。像这样完成测试类:
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class MathTest {
Math math;
@Before
public void setUp() throws Exception {
math = new Math(7, 10);
}
@Test
public void testAdd() {
Assert.assertEquals(17, math.add());
}
}
9- 在包资源管理器中单击测试类,然后单击“运行方式”> JUnit 测试。
10-这是测试的结果。
IntelliJ:请注意,我使用IntelliJ IDEA社区2020.1进行屏幕截图。另外,您需要在这些步骤之前设置 jre。我使用的是 JDK 11.0.4。
1- 右键单击项目的主文件夹>新的 -> 目录。您应该称之为“测试”。 2-右键单击测试文件夹并创建正确的包。我建议创建与原始类相同的包装名称。然后,右键单击测试目录 ->将目录标记为 ->测试源根目录。 3-在测试目录中的正确包中,您需要创建一个Java类(我建议使用Test.java)。 4- 在创建的类中,键入“@Test”。然后,在IntelliJ为您提供的选项中,选择“将'JUnitx'添加到类路径”。 5-在测试类中编写测试方法。方法签名如下所示:
@Test
public void test<name of original method>(){
...
}
你可以做如下断言:
Assertions.assertTrue(f.flipEquiv(node1_1, node2_1));
这些是我添加的导入:
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
您可以检查您的方法,如下所示:
Assertions.assertEquals(<Expected>,<actual>);
Assertions.assertTrue(<actual>);
...
我希望它有帮助。
-
单元测试模拟返回的数据有什么意义? 考虑一下我正在嘲笑某些服务及其方法的场景。 在上面的代码中,当调用时,mock 将返回 Jim,当调用 mock 时将返回 Mark。我的问题是我正在声明Mock的行为并检查它,拥有上述(或相同类型的)
-
验证是否使用 mockito 调用了三种方法之一 我有三种方法,如下所示: 但这不会编译“Errors类型中的方法方法1(字符串,字符串)不适用于参数(对象)” 我有两个问题: 我该如何解决这个问题? 有没有办法检查是否调用了两种
-
模拟类的所有实例 我知道这通常是一种不好的做法,但在我的情况下,这是必要的。 我有一个案例,一个枚举持有一个类来获得一些信息。因此,Enum 在其构造函数中创建该 calss 的实例。 但应该是3倍它的工作
-
单元测试 OSGi 组件 我目前正在考虑“如何设计一个OSGi组件,以便使用jUnit和Mockito等框架轻松编写测试”。 模拟捆绑包间依赖关系非常容易,因为OSGi加强了DIP(依赖关系反转原则)和注入器方法(例如setter)通常
-
龙目岛注释与Cobertura或类似工具中的代码覆盖率 从我从上面的问题中读到的内容来看,在Cobertura中,没有办法将给定的代码部分排除在测试之外,而不是在测试中覆盖。 这是真的吗?/ 在任何模拟工具中都可行吗? 我正在使用龙目岛注释