c# - C# 引用外部 DLL 中的方法返回错误
问题描述
我正在使用 NUnit 测试由另一个组开发的 DLL,但在尝试调用此外部 DLL 中的方法时出错,该外部 DLL 在我的测试项目中设置为引用。错误是:'UT' 是一个命名空间,但用作类型。我尝试了几种方法,但没有一种方法有效。如何正确引用它?
我尝试使用的方法与我开发的另一个类一起工作,后者在同一个命名空间中。现在,使用外部 DLL,它只是在编译之前显示错误。
这是我的程序:
using NUnit.Framework;
namespace UnitTesting.GettingStarted.Tests
{
[TestFixture]
public class TestUT
{
[TestCase("A12345", "CII", "10000")]
public void TestAccessVerification(string psCodeUsager, string psCodeApp, string psCodeFonction)
{
UT systemUnderTest = new UT();
Assert.IsTrue(systemUnderTest.VerifierAcces(psCodeUsager, psCodeApp, psCodeFonction));
}
}
}
DLL 中的源代码是这样的:
using ...;
namespace GZM
{
public class UT
{
public static bool VerifierAcces(string psCodeUsager, string psCodeApp, string psCodeFonction)
{
... // returns true or false
{
{
{
错误发生在以下行:
UT systemUnderTest = new UT();
其中两个“UT”都带有错误下划线“UT”是一个命名空间,但用作类型。
但是,如果我选择:
var systemUnderTest = new GZM.UT();
错误将发生在下一行,并且
systemUnderTest.VerifierAcces
将用消息“成员 'UT.VerifierAcces(string, string, string) 无法通过实例引用访问;改为使用类型名称对其进行限定。”
通常,我的测试应该可以工作并返回 True,但由于调用过程中的错误,我什至无法启动它。
解决方案
VerifierAcces
是一个静态方法,你不能从一个具体的对象实例中调用它。
利用
Assert.IsTrue(UT.VerifierAcces(psCodeUsager, psCodeApp, psCodeFonction));
反而。
推荐阅读
- yaml - 是否有针对“无法获取 http://deb.debian.org/debian/dists/jessie-updates/InRelease”的 YAML 配置修复
- linux - SSH 命令输出中使用的 Grep 不返回 PIPESTATUS
- string - 根据字符串标签列表搜索字符串的算法
- android-studio - adb 未安装或配置不正确
- mongodb - MongoDB 复合索引实际上是如何工作的?
- excel - 如何使用 VBA/Excel 使用 IE 自动化数据输入过程?
- c - FFMPEG/libavfilter drawtext 缩放而不影响视频
- javascript - 如何删除块生成器上的块?
- python - 从函数本身获取标准库函数的点分隔路径
- c# - 在调用方法时创建类的新实例