java - 如何对具有95%依赖性的java项目进行单元测试?

标签 java unit-testing junit

我正在开发一个基于java的项目。有如此多的依赖性。每个进程根据需要与服务器交互。我们可以使用任何单元测试吗?如果是,请举例;如果否,请说明原因。

最佳答案

是的,您可以在这种情况下使用测试。 您必须使用某种形式的模拟(Moq 框架)来模拟服务器资源。

重要的步骤之一是使用依赖注入(inject)。为了使用 Moq 框架,您需要进行大量代码重构。例如

class WeatherReportDisplay
{
    WeatherServerSomeWhereInIowa objserver = new WeatherServerSomeWhereInIowa();

    void PrintWeatherReport()
    {
        foreach (var item in objserver.Weather.Items)
        {
            Println(item.City + " " + item.temprature);
        }
    }
}

您必须将此表单的代码更改为

class WeatherReportDisplay
{
    IWeatherServer objserver;

    // Constructor Injection
    WeatherReportDisplay(IWeatherServer server)
    {
        if (server == null) throw new Exception("please send a server");

        this.objServer = server;
    }

    string WeatherReport()
    {
        return objServer.City + " " + objServer.temprature);
    }
}

在测试期间您可以执行此操作

class UnitTest
{
    void Should_Return_NewYork_20DegreeBelowZero()
    {
        WeatherReportDisplay obj = new WeatherReportDisplay(new MockServer);
        var result = obj.PrintWeatherReport  ();
        Assert.IsEqual(result, "NewYork_20DegreeBelowZero");
    }
}

关于java - 如何对具有95%依赖性的java项目进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034512/

相关文章:

java - 在这种情况下,Jackson 在使用 ObjectMapper.readTree 反序列化 JSON 时会创建 ShortNode?

java - 字符串相等性未评估为真

perl - 在开发过程中,我应该如何将 Perl 警告升级为 fatal error ?

java - EasyMock 3 具有类 :

java - PDF 文件的 JUnit 测试用例

spring - JUnit : my XML file location in @ContextConfiguration isn't found

java - 如何在运行时创建指定类类型的对象?

java - 将 MongoTemplate 传递给自定义存储库实现

Qt Creator 单元测试项目

java - 从 Controller 测试的上下文中访问 ModelAndView 对象中包含的模型的属性