测试无返回值的模块
如有错误欢迎指正
本篇文章是软件测试第二版(朱少民)实验四测试代码。代码仅代表本人想法,该代码也仅是本人学习测试使用,不一定是正确答案。
Q:如何测试没有返回值的模块?
A1:如果使用assertEquals的话需要在模块开始和结束发生一定的
数值
变化并且是经过该模块时会且唯一发生的逻辑,如类成员变量的值发生改变,这样即使没有返回值也能通过校验类成员变量改变的量是否与预期一致进行断言。(我还未实现过)A2:如果模块中发生较多
数值
变化,较难进行校验,或者没有发生任何数值变化。那么如果模块中有log
或System.out
等特殊且唯一的字符串输出,则可以通过抓取这些输出并进行字符串匹配来进行断言。
数值
:指Java中所有基础变量类型值的变化
- A2code(借鉴了@Hoboyz的代码)
- 使用containsString时需要导入
import static org.hamcrest.CoreMatchers.containsString;
- @Hoboyz导入了
import static org.hamcrest.Matchers.containsString;
,不知道为什么我在eclipse中导入这个包会报错。
import junit.framework.TestCase;
import org.junit.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import static org.hamcrest.CoreMatchers.containsString;
import static org.junit.Assert.assertThat;
public class BankAccountTest extends TestCase {
BankAccount b = new BankAccount("1", "zhangsan", "10", "123456");
@Test
public void testDeposit(