我尝试将一些值传递给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
}
}
及其工作。现在我尝试为Send
方法编写一些Xunit测试类。因为我需要创建一个对象来访问CommandRestClient
类。但我没有serverAddress
价值。我想通过硬核地址值或不传递CommandRestClient
来为serverAddress
类创建一个对象。请帮我
谢谢。
答案 0 :(得分:1)
通常,您将创建一个名为CommandRestClientTest的xunit类来测试CommandRestClient。您可以对该类中的ServerAddress常量进行硬编码,以对serverAddress进行硬编码,并将其传递给您在该xunit类中创建的每个CommandRestClient实例。
请记住,如果您实际上正在测试send方法到某个集成测试的地方。要成为纯单元测试,您将模拟外部交互并仅在CommandRestClient中测试业务逻辑
在Unit中,您通常将其置于标记为[Setup]的初始化中,但xunit鼓励您在每个方法中创建对象。
示例代码(尚未编译)
public class CommandRestClientTest
{
const string testServerAddress = "localhost:8080";
[Fact]
public void TestSomeMethod()
{
CommandRestClient commandRestClient = new CommandRestClient(testServerAddress);
//test, assert etc
}
}