C#:单元测试中出现不一致的可访问性错误 Class
C#: Inconsistent accessibility error within Unit Test Class
我看过以前关于不一致的可访问性错误的帖子,但它们没有我的情况那么具体,或者我认为是这样。
这是我的两个错误:
'ConsoleApplication1.Reader' is inaccessible due to its protection level
Inconsistent accessibility: field type 'ConsoleApplication1.Reader' is less
accessible than field 'UnitTestProject1.ReaderTest.reader'
Reader class 是 public 所以我不确定为什么测试 class 没有看到。我有多个其他测试没有同样的问题,并且所有测试都以相同的方式设置。至于第二个错误,我相信如果我修复第一个错误,那么这个错误就会得到解决。下面我将附上Readerclass的一段以及对它的测试class。非常感谢您的建议,谢谢!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
/// <summary>
/// Created and tested by Alexander James Bochel.
/// Last Updated: 6/7/2017
/// </summary>
class Program
{
/// <summary>
/// This will call the rest of the classes in the program.
/// </summary>
/// <param name="args"> Command line arguments. </param>
static void Main(string[] args)
{
openFile();
}
public static void openFile()
{
Reader reader = new Reader(@"C:\Users\abochel\Desktop\TEST.xlsx", 0);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public class Reader
{
public Reader()
{
// TODO - Default constructor.
}
}
}
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections;
using System.Collections.Generic;
using ConsoleApplication1;
namespace AutomationProgramTests
{
[TestClass]
public class ReaderTest
{
Reader reader;
[TestMethod]
public void testCreateSales()
{
reader = new Reader(); // TODO add path and sheet.
}
}
}
我通过删除 Reader class 的构造函数中的代码和 Main 方法中的 Reader 初始化来修复此错误。在程序仍然有效后立即阅读这些代码行,即使没有真正改变。我不确定为什么会这样,但确实如此,在慢慢删除所有代码后我成功复制了多次,直到错误不再发生,让我能够查明来源。
我看过以前关于不一致的可访问性错误的帖子,但它们没有我的情况那么具体,或者我认为是这样。
这是我的两个错误:
'ConsoleApplication1.Reader' is inaccessible due to its protection level
Inconsistent accessibility: field type 'ConsoleApplication1.Reader' is less
accessible than field 'UnitTestProject1.ReaderTest.reader'
Reader class 是 public 所以我不确定为什么测试 class 没有看到。我有多个其他测试没有同样的问题,并且所有测试都以相同的方式设置。至于第二个错误,我相信如果我修复第一个错误,那么这个错误就会得到解决。下面我将附上Readerclass的一段以及对它的测试class。非常感谢您的建议,谢谢!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
/// <summary>
/// Created and tested by Alexander James Bochel.
/// Last Updated: 6/7/2017
/// </summary>
class Program
{
/// <summary>
/// This will call the rest of the classes in the program.
/// </summary>
/// <param name="args"> Command line arguments. </param>
static void Main(string[] args)
{
openFile();
}
public static void openFile()
{
Reader reader = new Reader(@"C:\Users\abochel\Desktop\TEST.xlsx", 0);
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
public class Reader
{
public Reader()
{
// TODO - Default constructor.
}
}
}
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections;
using System.Collections.Generic;
using ConsoleApplication1;
namespace AutomationProgramTests
{
[TestClass]
public class ReaderTest
{
Reader reader;
[TestMethod]
public void testCreateSales()
{
reader = new Reader(); // TODO add path and sheet.
}
}
}
我通过删除 Reader class 的构造函数中的代码和 Main 方法中的 Reader 初始化来修复此错误。在程序仍然有效后立即阅读这些代码行,即使没有真正改变。我不确定为什么会这样,但确实如此,在慢慢删除所有代码后我成功复制了多次,直到错误不再发生,让我能够查明来源。