在测试之间传递JUnit数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在测试之间传递JUnit数据相关的知识,希望对你有一定的参考价值。
我刚刚发现在创建一些CRUD测试时,你不能在一次测试中设置数据并让它在另一次测试中读取(数据在每次测试之间都会重新设置为初始化)。
我所要做的就是(C)用一个测试来创建一个对象,然后用(R)用下一个测试来创建它。 JUnit是否有办法做到这一点,或者它是否在意识形态上编码,以便不允许测试相互依赖?
那么,对于单元测试,你的目标应该是测试最小的孤立的代码片段,通常是按方法测试。所以testCreate()
是一个测试用例,testRead()
是另一个。但是,没有什么可以阻止你创建一个testCreateAndRead()
来测试这两个函数。但是如果测试失败,那么测试失败的代码单元是什么?你不知道。那些测试更像是集成测试,应该区别对待。
如果你真的想这样做,可以创建一个静态类变量来存储testCreate()
创建的对象,然后在testRead()
中使用它。
因为我不知道你在说什么版本的Junit,所以我只拿起古老的Junit 3.8:
完全丑陋但有效:
public class Test extends TestCase{
static String stuff;
public void testCreate(){
stuff = "abc";
}
public void testRead(){
assertEquals(stuff, "abc");
}
}
JUnit推动独立测试。一种选择是将两个逻辑测试放入一个@Test方法中。
部分创建TestNG以允许测试之间的这些依赖性。它强制执行测试依赖项的本地声明 - 它以有效顺序运行测试,并且不运行依赖于失败测试的测试。有关示例,请参阅http://testng.org/doc/documentation-main.html#dependent-methods。
JUnit是独立测试。但是,如果没有办法,可以使用“静态”实例来存储它。
static String storage;
@Test
public void method1() {
storage = "Hello"
}
@Test
public void method2() {
Assert.assertThat(something, is(storage));
}
这些测试需要多长时间?如果不是很多,那么为什么要出汗呢。当然你会不必要地创造一些物品,但这需要多少钱?
@Test
void testCreateObject() {
Object obj = unit.createObject();
}
@Test
void testReadObject() {
Object obj = null;
try {
obj = unit.createObject(); // this duplicates tests aleady done
} catch (Exception cause) {
assumeNoException(cause);
}
unit.readObject(obj);
}
在该基本示例中,变量在测试A中改变,并且可以在测试B中使用
public class BasicTest extends ActivityInstrumentationTestCase2 {
public BasicTest() throws ClassNotFoundException {
super(TARGET_PACKAGE_ID, launcherActivityClass);
}
public static class MyClass {
public static String myvar = null;
public void set(String s) {
myvar = s;
}
public String get() {
return myvar;
}
}
private MyClass sharedVar;
@Override
protected void setUp() throws Exception {
sharedVar = new MyClass();
}
public void test_A() {
Log.d(S,"run A");
sharedVar.set("blah");
}
public void test_B() {
Log.d(S,"run B");
Log.i(S,"sharedVar is: " + sharedVar.get());
}
}
输出结果是:
跑A
跑B
sharedVar是:等等
以上是关于在测试之间传递JUnit数据的主要内容,如果未能解决你的问题,请参考以下文章