我正在开发一个基于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/