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

使用Junit和mock的测试方法

贺飞
2023-03-14

我有这两种方法,在使用Mock实现测试时遇到了困难。我该如何参加考试?

我有麻烦得到Jboss目录而不必启动System.get属性(jboss.server.temp.dir);

public ResourceRenderer getImagem(String path) throws IOException {

        String resourceLocation = this.getResoureLocation(path);

        InputStream resourceAsStream = getClass().getClassLoader().getResourceAsStream(caminhoImagemClasspath);
        File file = new File(resourceLocation);
        FileUtils.copyInputStreamToFile(resourceAsStream, file);
        return ResourceRenderer.getInstance(file.getAbsolutePath(), false);
    }

public String getResoureLocation(String path) {
    String dirJboss= System.getProperty("jboss.server.temp.dir");
    if (dirJboss != null) {
        return dirJboss + File.separator + caminhoImagemClasspath;
    }
    return System.getProperty("java.io.tmpdir") + File.separator + path;
}

共有1个答案

萧伟兆
2023-03-14

如果要使用mock,可以将对系统属性的调用提取到它们自己的方法中,并模拟这些方法的返回值。

你们也可以使用这个系统。设置属性并将值设置为所需的值。

但如果我理解正确,您正在尝试测试getResourceLocation?在这种情况下,您不想测试属性,而是将它们设置为某个值并测试方法的逻辑,即1)最后一行中的字符串连接,2)如果dirJboss可用,则测试行为。

 类似资料:
  • 我正在尝试对put请求进行测试,它给了我空指针错误,只是在这种类型的请求中,我不知道为什么请有人帮我,这是我的控制器: 对于测试方法:

  • 本节介绍与JUnit Framework相关的各种模拟测试。 您可以在本地计算机上下载这些示例模拟测试,并在方便时离线解决。 每个模拟测试都提供一个模拟测试密钥,让您自己验证最终得分和评分。 JUnit Mock Test I 问题1 - 以下哪项描述正确测试? A - 测试是检查应用程序功能的过程,是否按照要求运行。 B - 测试是单个实体(类或方法)的测试。 C - 以上两者。 D - 以上都

  • 对不起我的英语。我对junit测试有问题。客户机要求覆盖所有类,即使是dto/model/entity(即使是错误的,我也必须这样做)。但我在测试getter和setter时遇到困难。我无法覆盖,我已经测试了许多解决方案,但要么覆盖率为0,要么出现错误,我该怎么办? 我的班级: 我的班级测试 always error,例如last when:when()需要的参数必须是“模拟的方法调用”。例如:w

  • 到今天为止,我一直在研究单元测试,遇到了一个障碍。我有一个给定的方法,我想用unittest测试,这个方法可能有错误,也可能没有错误。方法如下: 此方法应该输出由两个时间跨度的重叠时间构造的新时间跨度。我为此方法编写了一个单元测试,如下所示: 为了相互比较对象,我重写了TimeSpan类中的equals方法,如下所示: 查看测试中给定的时间跨度,我希望测试能够通过,但正如您所猜测的那样,它没有通过

  • 我们有一个相当复杂的对象,它是调用drools引擎的结果。对于JUnit测试我们的规则,我们创建了一个RulesTestHelper类,它提供了一个方法并对OurObject的元素执行许多断言(这可能通过编写我们自己的匹配器更好地解决,但我们还没有做到这一点)。 现在我想对这个方法进行JUnit测试,并断言当我将两个对象中的一个设置为“null”时,测试将失败。所以换句话说,我希望测试失败,这应该

  • 我正试图为一个方法编写一个测试用例,该方法基于特定的逻辑抛出异常。然而,测试用例失败了,因为预期的异常和获得的异常是不同的。 我如何解决这个问题?