正如我的类名所暗示的那样:如果我的类是迭代器的实例,我想测试一下。因此,我想知道,如果它只需要实现接口就可以这样做,似乎就足够了。
然而,当我通过JUNIT Test运行以下类时,我得到了以下控制台输出:
Do something!
Do something!
I did something!
似乎类构造函数被调用了两次!但是我不知道第二次调用来自哪里。我已经测试了“if”参数的变体以排除instanceof
有故障,例如
// if (a instanceof Object) {
// if (a instanceof Iterator) {
// if (2 > 3) {
然而,它在所有3种情况下都被调用了。因此,我假设Unit Test首先尝试,需要为自己创建一个类的对象来执行所有测试,因为它们是类的一部分。这是正确的吗(?)
import java.util.Iterator;
import org.junit.Test;
public class InstanceOfIteratorTest implements Iterator {
@Test
public void test1() {
InstanceOfIteratorTest a = new InstanceOfIteratorTest();
if (a instanceof Iterator) {
System.out.println("I did something!");
} else {
System.out.println("I did nothing!");
}
}
public InstanceOfIteratorTest() {
System.out.println("Do something!");
}
@Override
public boolean hasNext() {
throw new java.lang.UnsupportedOperationException("blub");
}
@Override
public Integer next() {
throw new java.lang.UnsupportedOperationException("blub");
}
@Override
public void remove() {
throw new java.lang.UnsupportedOperationException("blub");
}
}
在Java,如果不创建Object并调用construstor,就不可能调用非静态方法。当然,Junit必须调用construstor,所以真正的代码:
在朱尼特:
...
InstanceOfIteratorTest l = new InstanceOfIteratorTest(); // print "Do something!"
l.test1();
在l.test1中:
InstanceOfIteratorTest a = new InstanceOfIteratorTest(); // print "Do something!"
if (a instanceof Iterator) {
System.out.println("I did something!"); // print "I did something!"
} else {
System.out.println("I did nothing!");
}
您可以将代码更改为:
@Test
public void test1() {
if (this instanceof Iterator) {
System.out.println("I did something!");
} else {
System.out.println("I did nothing!");
}
}
在这种情况下“做点什么!”只打印一次。
test1()
是类InstanceOfIteratorTest
的实例方法,所以是的,JUnit需要先创建实例,然后调用该方法。这就是实例的工作方式。
问题内容: 在以下示例中,当单击时,将显示而不是。为什么?您将如何解决? 问题答案: React的对帐算法假定没有相反的信息,如果自定义组件出现在后续渲染的同一位置,则它与以前的组件相同,因此将重用前一个实例,而不是创建一个新实例。 如果要实现,则会看到被调用。 不同的节点类型 元素不太可能生成看起来像a 会生成的DOM 。无需花费时间尝试匹配这两种结构,React只是从头开始重建树。 作为推论,
我的react组件的构造函数被调用了两次,但我不知道为什么。我正在使用react redux存储我的应用程序的语言。我有一个基于浏览器语言设置默认语言的函数。LoginPage是第一个获得render的组件,因此我在其构造函数中调用了我的函数。基本上,它所做的就是比较并分派一个动作。当我用redux开发工具检查我的状态时,我看到它被调度了两次。我在构造函数中打印了虚拟数据,它也打印了两次。 登录页
我是新的反应,我试图用它开发一个简单的网络应用程序,但我得到了一个错误。当我加载一个类组件时,我的构造函数被调用两次,你能帮忙吗? 原木地被击中两次。在一些组件中,我希望进行一个命中DB的API调用,但我只想命中它一次。在许多情况下,使用并不方便,因为道具只出现在之后,因此我想在中调用(我不会使用setState,这会导致重新加载render)。 提前感谢
伙计们,我是JUnit测试的新手,并试图很好地掌握它,现在我正在为一个构造函数(用于创建有向图的有向图类)编写JUnit测试,该构造函数在读取负int值时抛出IllegalArgumentExctive,如果一切正常(节点值的数量)大于零,则创建一个图。 有向图类: 下面是我试图写的测试: 我应该如何使用一个(或两个)测试用例来测试这两个用例?如果“in”没有检测到-ve值,我就得到java。否则
根据我的理解,当创建了临时对象时,将调用move构造函数。这里,函数返回一个临时对象,但我的程序没有打印来自移动构造函数的消息:
例如,我有一个这样的课; 我要做的是为模拟的构造函数编写单元测试。 如果是静态的,那么这将很容易,因为我可以使用然后调用构造函数。 有人知道有什么办法吗?