C# 类型或命名空间名称';IHolidayProvider';找不到(是否缺少using指令或程序集引用?)
这是我下面的代码。它是用于单元测试的。我还有一个返回错误(假期)。它显示“(局部变量)列表假日 参数1:无法从“System.Collections.Generic.List”转换为“?” 当我添加“using System.Collections.Generic;”时显示错误C# 类型或命名空间名称';IHolidayProvider';找不到(是否缺少using指令或程序集引用?),c#,visual-studio-code,C#,Visual Studio Code,这是我下面的代码。它是用于单元测试的。我还有一个返回错误(假期)。它显示“(局部变量)列表假日 参数1:无法从“System.Collections.Generic.List”转换为“?” 当我添加“using System.Collections.Generic;”时显示错误 [事实] 公共作废当天的工作日\u FindHolidays\u ReturnsHolidays(){ //安排 var holidayProvider=new Mock(); 列表假日=新列表(){ 新假日(){The
[事实]
公共作废当天的工作日\u FindHolidays\u ReturnsHolidays(){
//安排
var holidayProvider=new Mock();
列表假日=新列表(){
新假日(){TheDate=新日期(2020年6月2日),Name=“海滩日”},
新假日(){TheDate=新日期(2020年6月2日),Name=“比萨饼日”}
};
holidayProvider.Setup(m=>m.GetHolidays(2020)).Returns(holidays);
日期日期=新日期(2020年6月2日,holidayProvider.Object);
//表演
List findHolidays=date.WhatHolidaysAreOnThisDay();
//断言
断言相等(“海滩日”,findHolidays[0]);
Assert.Equal(“比萨饼日”,findHolidays[1]);
}
IHolidayProvider类型是否在另一个程序集中声明为内部
(或未声明为公共
)类型?如果是这样,单元测试程序集将看不到它,您可能应该将其公开。注意:如果您没有显式地将接口声明为public
,它将是内部的
。这是我在另一个文件中为IHolidayProvider准备的:namespace DateProject{public class HolidayProvider{public List getholiday(int year){List list1=新列表();
[Fact]
public void WhatHolidaysAreOnThisDay_FindHolidays_ReturnsHolidays() {
// Arrange
var holidayProvider = new Mock<IHolidayProvider>();
List<Holiday> holidays = new List<Holiday>() {
new Holiday() {TheDate=new Date(2020, 6, 2), Name="Beach Day"},
new Holiday() {TheDate= new Date(2020, 6, 2), Name = "Pizza Day"}
};
holidayProvider.Setup(m=> m.GetHolidays(2020)).Returns(holidays);
Date date = new Date(2020, 6, 2, holidayProvider.Object);
// Act
List<string> findHolidays = date.WhatHolidaysAreOnThisDay();
// Assert
Assert.Equal("Beach Day", findHolidays[0]);
Assert.Equal("Pizza Day", findHolidays[1]);
}