我看到了我认为是一种错误的行为。@InjectMocks似乎不会在每种测试方法之前创建一个新的测试主题。就像“模拟”一样。在下面的示例中,如果Subject.section是最终的@Test失败。如果不是最后都通过。我目前的解决方案是使用@BeforeClass,但这并不理想。
Subject.java:
package inject_mocks_test;
public class Subject {
private final Section section;
public Subject(Section section) {
this.section = section;
}
public Section getSection() {
return section;
}
}
Section.java:
package inject_mocks_test;
public class Section {}
受试者测试。JAVA
package inject_mocks_test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class SubjectTest {
@Mock
Section section;
@InjectMocks
Subject subject;
@BeforeMethod
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void test1() {
assertEquals(section, subject.getSection());
}
@Test
public void test2() {
assertEquals(section, subject.getSection());
}
}
干杯。
您正在使用@InjectMocks
进行构造函数注入。只要Mockito找到未初始化的字段(null),这将起作用。JUnit在每次测试之前都会创建一个新的测试类实例,所以JUnit粉丝(像我一样)永远不会遇到这样的问题。TestNg没有创建测试类的新实例。它保持测试方法之间的状态,所以当mockito注释时。第二次调用initMocks(this)
,Mockito将找到已初始化的主题字段,并尝试使用字段注入。在另一个回合,这将一直有效,直到场地不是最终的。
这是虫子吗?我认为这不是API设计的自然结果。您的一些解决方法是添加
this.subject = null;
在一些@Aftermethod
方法中。
问题内容: 我看到了我认为是错误的行为。@InjectMocks似乎并没有在每种测试方法之前创建一个新的测试主题。就像@Mock一样。在下面的示例中,如果Subject.section是最后一个,则@Test失败。如果不是最后两个都通过。我当前的解决方法是使用@BeforeClass,但这并不理想。 Subject.java: Section.java: SubjectTest.java 干杯。
问题内容: 对行列表进行排序(在每行的最后一个字段上排序)的最简单方法是什么?每行可能具有可变数量的字段。 就像是 是我想要的,但是sort(1)不需要负数来从末尾而不是从开始选择字段。 我也希望能够选择字段分隔符。 编辑:为问题添加一些特殊性:我要排序的列表是路径名列表。路径名可以是任意深度,因此字段数是可变的。我想对文件名组件进行排序。 此附加信息可能会更改操作行以提取最后一个字段的方式(可以
问题内容: 我不了解python中列表的行为: 为什么一个元素的分配影响另一个元素?感谢您的回答! 问题答案: 当您将一个列表相乘时,它会复制对该列表的引用,但不会创建该列表的副本。由于列表是可变的,因此在更改列表时,所有对其引用的引用都会更改。 用ASCII术语来说: 您可以清楚地看到更改list3将同时影响两个位置。 如果要创建可变长列表而不复制引用,则应执行以下操作: 在这里,我们使用列表理
我创建了一个特殊的应用程序ontext-test.xml在我的测试类中使用它。 应用程序上下文测试。xml 现在,我想使用我的作为自动安装的Bean并将其注入到我的模拟中。 TodoDaoTest.java 这是我的TodoDao类TodoDao。Java语言 当我执行我的测试方法时,我得到了一个java。com上的lang.NullPointerException。梅德赫利菲。教程。托多利斯特。
我最近注意到一些流口水规则的奇怪行为。我有班级心率,它有以下字段: 我的规则文件如下: 我想将字段<代码>心率更改为<代码>心率,并在我的规则中更改字段名称,以便我的新规则现在是: 但这会产生错误,即drools无法解析该字段的心率。但是,当我将规则更改回原来的规则时,使用心率(heartRate),它可以正常工作,尽管这样的字段已经不存在了。我得到以下错误:
问题内容: 我想查询一个表的名称列表,该表显示在另一个表的字段中。 例子: table1.title>老虎伍兹作弊,老虎伍兹崩溃,布拉德·皮特很棒,麦当娜领养,布拉德·皮特拍电影 table2.names>老虎伍兹,布拉德·皮特,麦当娜 这就是两个表和值。我想编写一个查询,计算来自table2.names的哪些名称最经常出现在table1.title中 有人建议使用内部联接,但我无法使它正常工作…