当前位置: 首页 > 知识库问答 >
问题:

cucumber台阶测试中的嘲讽对象?“JMockit未正确初始化”错误

上官景铄
2023-03-14

我们尝试使用Gherkin/Cucumber进行单元测试。在maven项目中,我们曾经使用JUnit/JMockit执行以下格式的单元测试,并且工作得很好。

旧的Junit测试类曾经工作过:

@RunWith(JMockit.class)
public class UnitTestClass{
    @Mocked
    AClass mockedObject;

    @Test
    public void AMethodTest() {
        try {
            new NonStrictExpectations() {
                {
                    ExampleObject.callAMethod();
                    result = mockedObject;
                }
            };
                     Assert.assertEquals(xxxxx);
                catch(Exception e){
                }  
}

在开始使用Gherkin/Cucumber之后,我们正在用以下两个类编写单元类:

@RunWith(Cucumber.class)
@CucumberOptions (features = "src/test/java/feature/")
//@RunWith(JMockit.class)
public class UnitTestClass{
}


@RunWith(JMockit.class)
public class UnitTestClassSteps{

    @Given("^an input data id: '(\\d+)'\\.$")
    @Test
    public void a_data_ID(int arg1) throws Throwable {

            try {
                **new NonStrictExpectations() {**
                    {
                        ExampleObject.callAMethod();
                        result = mockedObject;
                    }
                };
                    Assert.assertEquals(xxxxx);
               catch(Exception e){
               } 
   }

共有1个答案

袁泓
2023-03-14

我一直将cucumber-java 1.2.5jmockit 1.3.0一起使用,它的效果非常好。没有黑客,没有诡计,没有复杂的设置。

唯一发生的事情是jMockit本身抱怨要在其他一些库之前声明,我认为是JUnit。它发生在几天前,在pom文件处是一个很容易的修复,所以我没有那么在意。

测试运行程序正在使用@runwith(cucumber.class),我只需要在实例化使用“real ones”的类之前实例化模拟,这意味着常规的jMockit用例。

 类似资料:
  • 问题内容: 我在用Java工作。 我通常会这样设置一些对象: 问题是:在此示例中是否等于,按原样我可以假定对未初始化的对象进行空检查将是准确的? 问题答案: 正确,未显式初始化的引用类型的静态成员和实例成员都由Java 设置为。相同的规则适用于数组成员。 根据Java语言规范的第4.12.5节: 变量的初始值 程序中的每个变量在使用值之前都必须具有一个值: 每个类变量,实例变量或数组组件在创建时均

  • 问题内容: 我正在设置用于学习JavaEE7中CDI的基本环境。我有以下代码可以启动。只是启动和关闭。 我正在控制台上关注。 有问题的线是。这仅表示依赖注入将不起作用。但是我不确定是什么问题。我已经添加了。我什至没有达到初始化对象的目的,那为什么会出现这个问题呢? Weld的官方文档还给出了阅读此答案后得到的相同代码。“ Antonio Goncalves”撰写的“ Beginning Java

  • 我们的项目中有一个不可替代代币状态和不可替代代币合约的自定义实现。我们正在使用下面的代码来发行我们的自定义不可替代代币。 当试图将上面获得的事务构建器转换为有线事务时(< code > builder . towiretransaction(service hub);)我们在下面的堆栈跟踪中得到一个错误。

  • 我正在尝试使用来启动zk/kafka。 zookeeper-1 _ 1 |[2022-01-17 12:30:34,845]信息绑定到端口0 . 0 . 0 . 0/0 . 0 . 0:2181 (org.apache.zookeeper . server . nettyservercnxnfactory)< br > zookeeper-1 _ 1 |[2022-01-17 12:30:34,8

  • 我正在使用spring Boot1.5.9编写一个小型rest服务器。我刚开始使用初始化代码,就被这种奇怪的行为卡住了。 我有个小测试- 最初,Application.Properties被忽略。在我添加了@SpringBootTest注释之后,application.properties被读取,但开始出现以下错误。 配置bean如下所示- 而且 我确实使用@EnableAutoConfigura