我正在开发一个基于java的项目。这有很多依赖。每个进程都根据需要与服务器交互。我们可以使用任何单元测试吗?如果是,请使用示例&如果没有理由。
答案 0 :(得分:1)
是的,您可以在此方案中使用测试。 您将不得不使用某种形式的模拟(Moq框架)来模拟服务器资源。
其中一个重要步骤是使用依赖注入。为了使用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");
}
}