首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对一个类进行单元测试,它只是一个记录输入和输出到第三方库的适配器?

如何对一个类进行单元测试,它只是一个记录输入和输出到第三方库的适配器?
EN

Software Engineering用户
提问于 2013-06-04 02:17:53
回答 1查看 1.3K关注 0票数 0

我有以下内容(在C#中,但这个问题也适用于Java):

代码语言:javascript
复制
public interface ILibraryAdapter
{
    string Property1 { get; }
    string Method1(string param1);
    ...
}

public class ThirdPartyLibrary : ILibraryAdapter
{
    private readonly ThirdPartyClass thirdPartyClass;
    private readonly ILog log;

    public ThirdPartyLibrary(ThirdPartyClass thirdPartyClass, ILog log)
    {
        this.thirdPartyClass = thirdPartyClass;
        this.log = log;
    }

    public string Property1
    {
        get
        {
            log.Trace("ThirdPartyClass.get_Property1()");
            var result = thirdPartyClass.Property1;
            log.Trace(string.Format("ThirdPartyClass.get_Property1() returned {0}", result));
            return result;
        }
    }

    public string Method1(string param1)
    {
        log.Trace(string.Format("ThirdPartyClass.Method1({0})", param1));
        var result = thirdPartyClass.Method1(param1);
        log.Trace(string.Format("ThirdPartyClass.Method1({0}) returned {1}", param1, result));
        return result;
    }

    ...
}

其中,...表示更多要包装和记录的属性和方法(大约有20多个属性和方法)。

每个方法中对记录器的单独调用都是需求的一部分。

我该如何对这门课进行单元测试?

注意:第三方类的属性和方法的名称并不总是与ILibraryAdapter的属性和方法的名称相匹配。

EN

回答 1

Software Engineering用户

发布于 2013-06-04 03:51:28

如果我要用Java编写一个测试,我将使用一个模拟库(比如Mockito)并创建一个ThirdPartyClass的模拟实例(可能还有ILog实例)。然后,我将创建一个ThirdPartyLibrary实例,传入模拟对象。

一旦有了,就调用要测试的方法,并验证与模拟对象的交互是否符合您的预期。

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

https://softwareengineering.stackexchange.com/questions/200334

复制
相关文章

相似问题

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