Ich bin neu in NUnit testen für asp.net mvc Web-App, Projekt Ich möchte mit Entity-Frame-Arbeit testen, um mit der Datenbank zu verbinden, aus dem Testprojekt muss ich mit der gleichen Datenbank des Projekts verbinden, die ich will zu testen .Wie man sich von NUnit Test Projekt zur Datenbank verbindet?
Controller, den ich testen wie folgt aussieht.
public class EXController : Controller
{
private readonly AppDbContext _context;
private readonly CommonDbContext _commonContext;
public EXController(CommonDbContext commonContext, AppDbContext context)
{
_commonContext = commonContext;
_context = context;
}
public ActionResult Index()
{
// some simple code.
}
}
Ich versuche NUnit Tests wie unten zu schreiben: In Referenzen Abschnitt des Testprojektes I hinzugefügt Projekt im Test als dll, ich bin in der Lage zu Zugriff auf alle Klassen aus dem Projekt, das ich testen mag.
CommonDbContext und AppDbContext sind die Klassen, die ich in dem zu testenden Code verwende, um eine Verbindung mit der Datenbank herzustellen. Diese Klassen nehmen das Argument als Connectionstring an.
also übergebe ich die Verbindungszeichenfolge an diese Klassen, um mit der Datenbank von Nunit Testprojekt zu verbinden.
Ich versuche, eine Verbindung zur Datenbank in NUnit-Testprojekt herzustellen, indem ich die folgende Verbindungszeichenfolge verwende.
Ich bekomme unter Ausnahme, wenn ich versuche, mit der Datenbank von NUnit Testprojekt zu verbinden.
Exception:
An exception of type 'System.ArgumentException' occurred in EntityFramework.dll but was not handled in user code
Additional information: Format of the initialization string does not conform to specification starting at index 164.
**Stack Trace:**
at System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, String& keyname, String& keyvalue)
at System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions.ParseInternal(IDictionary`2 parsetable, String connectionString, IList`1 validKeywords)
at System.Data.Entity.Core.EntityClient.Internal.DbConnectionOptions..ctor(String connectionString, IList`1 validKeywords)
at System.Data.Entity.Core.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
at System.Data.Entity.Core.EntityClient.EntityConnection..ctor(String connectionString)
at System.Data.Entity.Internal.LazyInternalConnection.Initialize()
at System.Data.Entity.Internal.LazyInternalConnection.CreateObjectContextFromConnectionModel()
at System.Data.Entity.Internal.LazyInternalContext.InitializeContext()
at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)
at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize()
at System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext()
at System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider()
at System.Linq.Queryable.Where[TSource](IQueryable`1 source, Expression`1 predicate)
at BidMaster.Web.Infrastructure.CurrentUser.get_User() in D:\BWM_sprint3_newcopy\BidMaster.Web\BidMaster.Web\Infrastructure\CurrentUser.cs:line 30
at BidMaster.Web.Controllers.CLINController.Index(Nullable`1 id) in D:\BWM_sprint3_newcopy\BidMaster.Web\BidMaster.Web\Controllers\CLINController.cs:line 51
at BidMaster.Test.Controllers.CLINControllerTests.IndexTest() in D:\BWM_sprint3_newcopy\BidMaster.Test\BidMaster.Test\Controllers\CLINControllerTests.cs:line 47
Irgendetwas stimmt nicht mit der Verbindungszeichenfolge, die ich verwende? Bitte helfen Sie mir, bitte erklären Sie, wie Sie mit der Datenbank von Unit-Test-Projekt verbinden. Ich bin neu im Testen.
Ich muss mich mit der gleichen Datenbank verbinden, die ich für das Projekt unter Testen verwende, aus dem Unit-Test-Projekt, weil meine Anforderung ist, die Daten zu testen, die von den gespeicherten Prozeduren zurückgegeben werden, sowie Teil der Tests, Wenn ich die DB Mock ich konnte nicht die Daten testen, die von Store-Verfahren zurückgegeben wird, bitte helfen Sie mir, mit der gleichen Datenbank, die ich für das Projekt unter Test verwenden, aus dem Unit-Test-Projekt, ohne die DB zu verspotten. – Satya