这是一个非常模糊(和菜鸟)的问题,但是.....如何在 C# 中测试类库? 我正在使用 nUnit 进行测试。
我想做的是测试数据库交互。输入将是一个序列化的 XML 对象,对其进行反序列化以针对代码进行测试,然后 XML 对象将被重新序列化并输出。
希望这能提供一些见解。我曾考虑过创建一个创建库实例的测试应用程序。我可以采取不同/更好/更有效的方法吗?
这是一个非常模糊(和菜鸟)的问题,但是.....如何在 C# 中测试类库? 我正在使用 nUnit 进行测试。
我想做的是测试数据库交互。输入将是一个序列化的 XML 对象,对其进行反序列化以针对代码进行测试,然后 XML 对象将被重新序列化并输出。
希望这能提供一些见解。我曾考虑过创建一个创建库实例的测试应用程序。我可以采取不同/更好/更有效的方法吗?
您必须创建一个使用 NUnit 的数据注释(、、等)的单独TestFixture
项目Test
。然后您可以构建该项目并将创建的 DLL 加载到 Nunit 中。
至于测试,只需像往常一样编写它们(Arrange-Act-Assert 是更普遍的模式)
像这样的东西
[Test]
public void MethodName_CallDatabase_ObjectDeserialized()
{
//Arrange
var db = new db();
//Act
var output = db.ExecuteCall();
//Assert
Assert.That(output, Is.EqualTo("123"));
}
至于如何,通常您的解决方案将如下所示:
Solution (Your Application)
+ YourApplication.Library
+ YourApplication.WebApp
+ YourApplication.Tests
测试项目是您可以添加到解决方案中的特定项目。在那里,您可以制作单元测试文件,这些文件将使用 NUnit DLL 标记它们然后运行。TestFixture
这意味着将这些类和这些类中的特定方法标记为Test
方法,然后它们YourApplication.Library
使用支持Assert
调用执行项目的某些部分,以验证库调用的结果。
如果你真的对严谨感兴趣,这里有几个部分。
如果您不想创建新的测试项目,只需在现有的类库项目中添加一个新类,然后向其中添加 Nunit 注释 TestFixture 并将测试作为其中的方法。如下
namespace APIWorkOut
{
[TestFixture]
public class TestClass
{
[Test]
public void getListOfUser()
{
API api = new API();
var listOFUsers = api.getUsers();
Console.Write(listOFUsers.Data.Count);
}
}
}