Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为类创建对象?_C#_.net_Oop_Xunit - Fatal编程技术网

C# 如何为类创建对象?

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> ///

我正在尝试将一些值传递给httpserver。 这是我的课

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
    }
}