C# 如何为类创建对象?
我正在尝试将一些值传递给httpserver。 这是我的课C# 如何为类创建对象?,c#,.net,oop,xunit,C#,.net,Oop,Xunit,我正在尝试将一些值传递给httpserver。 这是我的课 public interface ICommandRestClient { IRestResult Send(IMessageEnvelope envelope); } public class CommandRestClient : ICommandRestClient { private readonly string _serverAddress; /// <summary> ///
public interface ICommandRestClient
{
IRestResult Send(IMessageEnvelope envelope);
}
public class CommandRestClient : ICommandRestClient
{
private readonly string _serverAddress;
/// <summary>
/// Use to configure server address
/// </summary>
/// <param name="serverAddress">Configured serveraddress</param>
public CommandRestClient(string serverAddress)
{
_serverAddress = serverAddress;
}
public IRestResult Send(IMessageEnvelope envelope)
{
//do
}
}
公共接口ICommandRestClient
{
IRestResult发送(IMessageEnvelope信封);
}
公共类CommandRestClient:ICommandRestClient
{
私有只读字符串\u服务器地址;
///
///用于配置服务器地址
///
///配置的服务器地址
公共CommandRestClient(字符串服务器地址)
{
_服务器地址=服务器地址;
}
公共IRestResult发送(IMessageEnvelope信封)
{
//做
}
}
以及它的工作原理。现在我正在尝试为Send
方法编写一些Xunit测试类。为此,我需要创建一个对象来访问CommandRestClient
类。但是我没有serverAddress
值。我想通过硬核地址值或不传递serverAddress
为CommandRestClient
类创建一个对象。请帮帮我
谢谢。通常,您将创建一个名为CommandRestClientTest的xunit类来测试CommandRestClient。您可以对该类中的ServerAddress常量进行硬编码,以硬编码ServerAddress,并将其传递给在该xunit类中创建的每个CommandRestClient实例 请记住,如果您实际上正在测试一个发送方法到某个地方,那么这就是一个集成测试。作为一个纯粹的单元测试,您将模拟外部交互,只测试CommandRestClient中的业务逻辑 在Unit中,您通常会将其放在标记为[Setup]的初始化中,但xunit鼓励您在每个方法中创建对象 示例代码(尚未编译)
为您在CommandRestClient实现上测试的任何内容创建适当的值(单个值或工厂值)。如果测试某个使用ICommandRestClient的东西,那么你可以模仿它(完全忘记serverAddress)。你的主题并不反映你的帖子。是这样的吗?private readonly CommandRestClient _CommandRestClient=new CommandRestClient(“);
public class CommandRestClientTest
{
const string testServerAddress = "localhost:8080";
[Fact]
public void TestSomeMethod()
{
CommandRestClient commandRestClient = new CommandRestClient(testServerAddress);
//test, assert etc
}
}