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

测试方法返回特定对象 junit

秋阳荣
2023-03-14

我正在尝试创建我的第一个测试。我必须证明一个方法返回一个ContextLambda类型,我正在使用assertSame函数测试它,但是我的测试失败了,我不知道用什么assert来测试这个,用assertEquals也失败了。我的测试是这样的:

@Test
public void testCanCreateContextForLambda() {
    ContextFactory factory = new ContextFactory();

    LambdaContext context = factory.forLambda(
            new FakeRequest(),
            new FakeResponse(),
            new FakeLambda()
    );
    assertSame(LambdaContext.class, context);
}

共有2个答案

邓鸿雪
2023-03-14

使用<code>assertSame</code>的断言断言<code>LambdaContext。class==上下文。这永远不会是真的。

你可以用几种方法来纠正你的断言

    < li > < code > context的上下文实例将是平凡的(始终为真) < Li > < code > context . getclass()= = lambda context . class 几乎是微不足道的(可能总是正确的)

这些测试可以使用 junit5 库的 assertSameassertTrue 编写(参见其他答案)。

我最好的建议是:放弃这个测试,写一个断言上下文的非平凡属性的测试。

蔡默
2023-03-14

尝试使用instanceofassertTrue:包含assertTrue导入:

import static org.junit.Assert.assertTrue;

然后是实际测试:

@Test
public void testCanCreateContextForLambda() {
    ContextFactory factory = new ContextFactory();

    LambdaContext context = factory.forLambda(
            new FakeRequest(),
            new FakeResponse(),
            new FakeLambda()
    );
    assertTrue(context instanceof LambdaContext);
}

只要< code>context是< code>LambdaContext类型的类,该断言将是平凡的,并且将始终为真(例如,使用interface使其不平凡)。

 类似资料:
  • 我正在尝试构建一个使用gradle作为构建工具和openjdk-11的原型。这个原型将在springboot框架上构建一个rest-api。 我的模块与rest api调用配合良好,并返回了预期结果。然而,当我现在试图为RESTAPI编写测试时,测试失败了,因为Mockito返回了空对象。如果您能了解我应该如何为这个rest api编写测试或如何修复它,我将不胜感激。 我的控制器: 服务: 模型:

  • 我之前问过这个问题,它与这个问题相关(如何从异步调用返回响应?),但它并没有解决我的问题 我是node.js的新手,我遇到了一些我无法处理的错误,或者找不到任何我理解的帮助。我使用express generator初始化应用程序。我试图通过一个api调用将我得到的对象发送到前端。我编写了一个类“StockClass.js”,其中包含一个函数makeApiCall(),该函数进行调用并返回对象。但当

  • 测试方法: 测试用例:

  • 这是MyFragmentPagerAdapter类,它扩展了FragmentPagerAdapter。返回我的片段时发现错误 我的国家详情如下。它扩展了Fragment,我将2个文本视图填充到一个视图寻呼机中,如下所示。 堆栈跟踪如下 03-03 05:15:31.093: E/AndreidRuntime(910): FATAL EXCEPTION: main 03-03 05:15:31.09

  • 我希望在我的dao对象中有这样的方法 但我得到了错误 错误:不确定如何将游标转换为此方法的返回类型public abstract java。util。地图 是否可以将其更改为工作版本? 因此,返回的类型可能不同,但主要条件是 数据库中只能有一个查询 我希望避免额外的代码,比如只为这个方法创建额外的数据结构