Testklasse im Projekt JohnsonTestC# Test nicht kompiliert
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);
}
}
}
Klasse unter Test im Projekt Johnson
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);
}
}
}
Andere beteiligten Klassen im Projekt Johnson
using Requests;
namespace Usecases
{
public interface IUsecase
{
void Execute(IRequest request);
}
public class InitialUsecase : IUsecase
{
public void Execute(IRequest request)
{
;
}
}
}
Und
namespace Requests
{
public interface IRequest
{
}
public class InitialRequest : IRequest
{
}
}
Die Build-Fehler sind:
1> C: \ Benutzer \ bggib_000 \ Dokumente Visual Studio \ 2017 \ Projects \ Johnson \ Johnson \ JohnsonRibbon.cs (25,21,25,38): Fehler CS7036: Es gibt kein Argument, dass formalen Parameter ‚usecase‘ von ‚InitialController.InitialController (IRequest, IUsecase)‘ auf den gewünschten entspricht
Dies scheint über ‚dies‘ zu beschweren, aber meine vorherigen Test mit nur 'dies'
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);
}
}
}
mit dieser Klasse gearbeitet:
public class InitialController : IController
{
IUsecase usecase;
public InitialController(IUsecase usecase)
{
this.usecase = usecase;
}
public void Execute()
{
usecase.Execute();
}
}
2> C: \ Users \ bggib_000 \ Dokumente \ Visual Studio 2017 \ Projects \ Johnson \ JohnsonTest \ ContollerTest.cs (8,41, 8,49): Fehler CS0535: 'InitialContollerTest' nicht implementiert Schnittstelle Mitglied 'IUsecase.Execute()'
Dies scheint über etwas zu beschweren, die nicht E nicht xist.
using Requests;
namespace Usecases
{
public interface IUsecase
{
void Execute(IRequest request);
}
public class InitialUsecase : IUsecase
{
public void Execute(IRequest request)
{
;
}
}
}
Visual Studio Community 2017 zeigt keine Fehler an. Warum wird das nicht kompiliert?
Fragen suchen Debugging-Hilfe ("Warum ist das nicht Code funktioniert? ") muss das gewünschte Verhalten, ein bestimmtes Problem oder einen Fehler und den kürzesten Code enthalten, der notwendig ist, um es in der Frage zu reproduzieren Elf. Fragen ohne eine klare Problemstellung sind für andere Leser nicht nützlich. –
[MCVE] bitte. .. –
Der 'InitialController'-Konstruktor erwartet zwei Argumente, von denen Sie eins angeben. – CodeCaster