首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试委托方法

单元测试委托方法
EN

Stack Overflow用户
提问于 2010-08-13 13:09:00
回答 3查看 484关注 0票数 4

如果一个方法所做的唯一事情就是委托另一个对象上的工作,那么单元测试有什么意义吗?示例:

代码语言:javascript
复制
class abc {

    ...

    public void MoveLeft()
    {
        fallingPiece.MoveLeft();
    }

    ...
}

出于学习的目的,我正在为一些现有的类做单元测试。例如,为这个MoveLeft()方法进行单元测试似乎有点奇怪。但我不确定如果我先做Test-First会是什么样子。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-13 13:18:21

如果我这样做,你的代码会崩溃吗?如果是这样,那么你需要一个测试来捕捉它。

代码语言:javascript
复制
class abc {
    ...
    public void MoveLeft()
    {
        // fallingPiece.MoveLeft();
    }
    ...
}

假设: abc是一个公共/公开类型,而fallingPiece是一个依赖项。如果这种情况成立,那么您需要一个测试来测试MoveLeft行为。如果它不是公共类型,那么您需要对使用abc作为colloborator/dependency的公共类型XYZ进行测试。您不会直接测试它,但它仍然需要测试。

票数 4
EN

Stack Overflow用户

发布于 2010-08-13 13:15:51

我对单元测试的理解是,它们的存在是为了确保方法中的逻辑在您不打算更改它时保持不变,并且此方法中没有逻辑。在我工作的代码库中,我们有很多这样的直通方法。从表面上看,它们是“控制器”类,但在大多数情况下,它们所做的只是传递到数据层。

是的,假设您有一种模拟fallingPiece的方法,您可以对它们进行单元测试。如果您真的计划扩展MoveLeft方法以包含逻辑,这可能是一个好主意。

然而,根据我上面的评论,更好的方法可能是只内联该方法,直到你真正需要引入向左移动的逻辑。

票数 1
EN

Stack Overflow用户

发布于 2010-08-13 13:47:25

当调用Abc.MoveLeft时fallingPiece为null时,此方法可能会失败。有一个测试用例来构建一个合法的abc并调用abc.MoveLeft可能是个好主意。类似于CanMoveLeft() { Abc =new Abc();abc.MoveLeft();Assert.That( abc.fallingPice已向左移动)}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3474057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档