首页 > 解决方案 > 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,但由于调用过程中的错误,我什至无法启动它。

标签: c#testingdllreferencenunit

解决方案


VerifierAcces是一个静态方法,你不能从一个具体的对象实例中调用它。

利用

Assert.IsTrue(UT.VerifierAcces(psCodeUsager, psCodeApp, psCodeFonction));

反而。


推荐阅读