【发布时间】:2020-05-08 16:26:21
【问题描述】:
我正在使用 VS2019 并使用 .NET Core 模板创建了一个 NUnit 测试项目,然后我添加了以下代码:
using NUnit.Framework;
namespace xxx
{
class Immutable
{
public Immutable(string _cur, string _addr)
{
Currency = _cur;
Address = _addr;
}
public string Currency { get; }
public string Address { get; }
[Test]
public static void Test() // reports this line has problem?
{
var m = new Immutable("usd", "us");
string s = m.Currency;
Assert.AreEqual("usd", s);
}
}
}
构建正常,但是当我运行它时,测试资源管理器会报告:
Test
Source: xxx.cs line 17
Duration: < 1 ms
Message:
OneTimeSetUp: No suitable constructor was found
我不太明白是什么问题,如何解决?
【问题讨论】:
-
NUnit 测试方法(通常)是实例方法。 .NET 测试通常是结构化的,因此您将代码放在一个项目中(通常是一个类库,但它可以是一个应用程序),然后是一个单独的测试项目,其中包含您的测试装置,并引用包含您的代码的项目。您通常不会在要测试的代码内部嵌入测试方法。然而,理论上,NUnit 确实支持静态测试方法,所以我不确定它为什么要实例化
Immutable。不过,它应该在测试夹具上需要一个[TestFixture]属性。 -
你自己测试单元测试类吗?
标签: c# unit-testing .net-core constructor