C#测试不会编译
约翰逊测试项目中的测试类C#测试不会编译,c#,compiler-errors,C#,Compiler Errors,约翰逊测试项目中的测试类 using Microsoft.VisualStudio.TestTools.UnitTesting; using Usecases; using Requests; namespace Controllers { [TestClass] public class InitialContollerTest : IUsecase { private bool executeMethodCalled = false;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Usecases;
using Requests;
namespace Controllers
{
[TestClass]
public class InitialContollerTest : IUsecase
{
private bool executeMethodCalled = false;
public void Execute(IRequest request)
{
executeMethodCalled = true;
}
[TestMethod]
public void ShouldCallInitialUsecase()
{
IRequest request = new InitialRequest();
InitialController controller = new InitialController(request, this);
controller.Execute();
Assert.IsTrue(executeMethodCalled);
}
}
}
约翰逊项目中正在测试的类
using Requests;
using Usecases;
namespace Controllers
{
interface IController
{
void Execute();
}
public class InitialController : IController
{
private IUsecase usecase;
private IRequest request;
public InitialController(IRequest request, IUsecase usecase)
{
this.request = request;
this.usecase = usecase;
}
public void Execute()
{
usecase.Execute(request);
}
}
}
using Requests;
namespace Usecases
{
public interface IUsecase
{
void Execute(IRequest request);
}
public class InitialUsecase : IUsecase
{
public void Execute(IRequest request)
{
;
}
}
}
约翰逊计划涉及的其他课程
using Requests;
using Usecases;
namespace Controllers
{
interface IController
{
void Execute();
}
public class InitialController : IController
{
private IUsecase usecase;
private IRequest request;
public InitialController(IRequest request, IUsecase usecase)
{
this.request = request;
this.usecase = usecase;
}
public void Execute()
{
usecase.Execute(request);
}
}
}
using Requests;
namespace Usecases
{
public interface IUsecase
{
void Execute(IRequest request);
}
public class InitialUsecase : IUsecase
{
public void Execute(IRequest request)
{
;
}
}
}
及
生成错误包括:
1> C:\Users\bggib\u 000\documents\visualstudio
2017\Projects\Johnson\Johnson\JohnsonRibbon.cs(25,21,25,38):错误
CS7036:没有与所需参数相对应的参数
的形式参数“usecase”
'InitialController.InitialController(IRequest,IUsecase)'
这似乎是在抱怨“这个”,但我之前的测试只是“这个”
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Usecases;
namespace Controllers
{
[TestClass]
public class InitialContollerTest : IUsecase
{
private bool executeMethodCalled = false;
void IUsecase.Execute()
{
executeMethodCalled = true;
}
[TestMethod]
public void ShouldCallInitialUsecase()
{
InitialController controller = new InitialController(this);
controller.Execute();
Assert.IsTrue(executeMethodCalled);
}
}
}
与本课程合作:
public class InitialController : IController
{
IUsecase usecase;
public InitialController(IUsecase usecase)
{
this.usecase = usecase;
}
public void Execute()
{
usecase.Execute();
}
}
2> C:\Users\bggib\u 000\documents\visualstudio
2017\Projects\Johnson\Johnson test\ContollerTest.cs(8,41,8,49):错误
CS0535:“InitialControllerTest”未实现接口成员
'IUsecase.Execute()'
这似乎是在抱怨一些不存在的东西
using Requests;
namespace Usecases
{
public interface IUsecase
{
void Execute(IRequest request);
}
public class InitialUsecase : IUsecase
{
public void Execute(IRequest request)
{
;
}
}
}
Visual Studio Community 2017未显示任何错误。为什么不编译此文件?此文件就是问题所在:
using Microsoft.Office.Tools.Ribbon;
using Excel = Microsoft.Office.Interop.Excel;
using Controllers;
namespace Johnson
{
public partial class JohnsonRibbon
{
private void JohnsonRibbon_Load(object sender, RibbonUIEventArgs e)
{
}
private void OnInitalButtonClick(object sender, RibbonControlEventArgs e)
{
string Prompt = "Select two data columns (X, Freq) for analysis";
string Title = "Select Histogram";
var range = Globals.ThisAddIn.Application.InputBox(Prompt: Prompt, Title: Title, Type: 8);
if (range is Excel.Range)
{
new InitialController(new Usecases.InitialUsecase()).Execute();
}
}
}
}
有一次我换了这行
new InitialController(new Usecases.InitialUsecase()).Execute();
对此,它起了作用
new InitialController(new Requests.InitialRequest(), new Usecases.InitialUsecase()).Execute();
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请
InitialController
构造函数需要两个参数,您提供一个。@rory.ap好的。今天我学到了一些新东西;)@CodeCaster在当前测试中我传递了两个参数InitialController=newinitialcontroller(请求,this);