私有方法如下:
package testPrivateMethod;
public class MainMethod {
public MainMethod(){}
private String flag ="1234567890";
public void todo(){
op1();
op2();
System.out.println(flag);
}
private void op1(){
flag = flag.substring(2,7);
}
private void op2(){
flag = flag.substring(2);
}
/**
* @return the flag.
*/
public String getFlag() {
return flag;
}
/**
* @param The flag to set.
*/
public void setFlag(String flag) {
this.flag = flag;
}
}
这里只测试op1这个方法,测试代码如下:
package testPrivateMethod.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import junit.framework.TestCase;
import testPrivateMethod.MainMethod;
public class MainMethodTest extends TestCase {
public void testOp1(){
try{
String rightValue="34567";
Class clazz = Class.forName("testPrivateMethod.MainMethod");
MainMethod example = (MainMethod)clazz.newInstance();
Method m1 = example.getClass().getDeclaredMethod("op1",null);
m1.invoke(example,null);
assertEquals(example.getFlag(),rightValue);
}catch(Exception e){
e.printStackTrace();
}
}
}
记录下来,回去睡觉!
分享到:
相关推荐
5. **断言结果**:在JUnit测试中,我们可以使用`assertEquals()`等断言方法,验证私有方法执行后的结果是否符合预期。 下面是一个简单的例子,展示如何使用JUnit测试私有方法: ```java import org.junit.Test; ...
私有方法通常不直接暴露给外部调用,因此,常规的单元测试框架如JUnit或TestNG可能无法直接对它们进行测试。然而,这并不意味着我们不能或者不应该测试这些方法。实际上,有几种策略可以用来确保私有方法的正确性。 ...
3. 在测试方法内,获取要测试的类实例,如`Commodity_Child child = new Commodity_Child()` 4. 使用`child.getClass()`获取`Commodity_Child`的`Class`对象。 5. 通过`Class`对象的`getDeclaredMethod()`或`...
6. **断言结果**:在测试方法的最后,使用JUnit的断言方法(如`assertEquals()`、`assertThat()`)来验证测试结果是否符合预期。 7. **测试覆盖率**:除了基础功能测试,还应覆盖各种边界条件、异常处理和错误路径...
在单元测试中,我们通常不直接测试私有方法,而是通过测试公有方法来间接验证私有方法的正确性。然而,有时私有方法包含了复杂的逻辑,为了确保整个类的正确性,我们可能需要对其进行单独测试。PowerMock允许我们...
为了测试这个功能,我们创建了两个测试方法: 1. `testDoValidate`:这个方法用于测试正常情况,即验证有效的电子邮件地址。它调用 `doValidate` 方法并传入一系列已知的合法 email 地址,期望在这些情况下不抛出...
类似的,我们可以编写其他测试方法来测试NextDay类的其他方法,例如testLastDay方法来测试lastDay方法,testNextDay方法来测试nextDay方法,以此类推。 通过对NextDay类的Junit测试,我们可以确保NextDay类的正确性...
1. **测试注解**:JUnit的`@Test`注解标记测试方法,`@Before`和`@After`注解分别用于在每个测试方法之前和之后执行的代码。 2. **异常断言**:JUnit的`assertThat()`方法可以用来验证预期的异常是否抛出。 3. **...
在`TestName`的源代码中,有一个名为`fName`的私有字段,用于存储测试方法的名称。`TestName`重写了`TestWatcher`的`starting(Description d)`方法,当测试开始时,它会从`Description`对象中获取测试方法的名称并...
在测试类中,我们可以定义一个或多个测试方法,每个方法都使用JUnit的`@Test`注解标记。例如: ```java import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org....
- **注解**:JUnit 4引入了注解,如`@Test`用于标记测试方法,`@Before`和`@After`用于定义测试前后的初始化和清理操作。 - **断言**:`assertEquals()`、`assertTrue()`等断言方法用于验证测试结果是否符合预期。 -...
它扩展了JUnit和TestNG,允许开发者模拟静态方法、构造函数、私有方法和删除final修饰,这在进行复杂的测试场景模拟时非常有用。在encore工程中,powermock可以帮助我们隔离被测试代码,确保测试的准确性。 至于...
然而,在进行单元测试时,尤其是使用JUnit这样的测试框架时,有时我们需要直接访问或操作私有方法和变量以确保代码的正确性。这时,`accessive`包就派上了用场。 `accessive`是一个小型的Java框架,它的主要目的是...
使用 `@Test` 注解标记测试方法。例如,验证 `add` 方法是否正确: ```java import org.junit.Test; import static org.junit.Assert.assertEquals; public class CalculatorTest { @Test public void ...
单体测试(Unit Test)是一种软件测试方法,旨在验证软件的每个单元是否正确地执行其预期的功能。单体测试是软件开发中不可或缺的一部分,目的是为了确保软件的可靠性、稳定性和高效性。 从文件中,我们可以看到...
- **public TestCase(String name)**: 构造函数,允许指定测试方法的名称。 - **countTestCases**: 返回当前测试用例的数量,默认为1。 - **name**: 已弃用的方法,建议使用`getName()`代替。 - **run**: 执行...
在使用JUnit测试Money这个类时,我们可以编写多个测试方法来测试不同的场景,如测试amount()方法、测试currency()方法、测试add()方法等。 结论 JUnit是一个功能强大且广泛使用的Java测试框架。通过学习JUnit,...
PowerMock是一个扩展了其他模拟框架(如EasyMock、Mockito等)的库,它可以模拟静态方法、构造函数、final类和方法、私有方法以及删除静态初始化器等,这些都是传统模拟框架难以处理的情况。在进行单元测试时,有些...