2013-03-04 12 views
8

Sadece ayaklarımı Nancy'de ıslatıyorum. Test sürecini Wiki'de görmek beni çok heyecanlandırdı, ancak aşağıdakileri denediğimde, test yapamamıştım. VS2010Neden DefaultNancyBoostrapper `NancyModule'imi bulamıyor

  1. kullanma

    Empty ASP.NET Web Application Project oluşturuldu Notify.App

  2. Install-Package Nancy.Hosting.AspNet
  3. basit Modülü düzenlendi aşağıda listelenen: Notify.UnitTests
  4. Install-Package Nancy.Testing
  5. :
  6. düzenlendi Class Library Projesi NotifyModule Install-Package XUnit
  7. düzenlendi basit ilk test: Test HttpStatusCode.NotFound ile başarısız DefaultNancyBootstrapper kullanma BaseUrlSpec.cs

.

var bootstrapper = new ConfigurableBootstrapper(
          with => 
          with.Module<NotifyModule>()); 

daha sonra test geçer:

Birlikte bootstrapper tanımını değiştirin.
DefaultNancyBootstrapper'ı kullanan SDHP'nin neden çalışmadığını anlamıyorum. Onu kırmak için yanlış bir şey mi yaptım yoksa anladığımda ayrıntıları kaçırıyor muyum?


NotifyModule

using Nancy; 
public class NotifyModule : NancyModule { 
    public NotifyModule() { 
     Get["/"] = _ => HttpStatusCode.OK; 
    } 
} 

BaseUrlSpec

Sen rotanızı içeren derleme yüklü olduğundan emin olmak için ihtiyaç
using Nancy; 
using Nancy.Testing; 
using Notify.App; 
using Xunit; 
public class BaseUrlSpec 
{ 
    [Fact] 
    public void ShouldRespondOk() 
    { 
     var bootstrapper = new DefaultNancyBoostrapper(); 
     var app = new Browser(bootstrapper); 
     var response = app.Get("/", with => with.HttpRequest()); 
     var statusCode = response.StatusCode; 
     Assert.Equal(HttpStatusCode.OK, statusCode); 
    } 
} 

cevap

6

. Montajınızdaki bir türe referans yapmak, bu sayede yapılandırılabilir önyükleyiciyi kullanan versiyon çalışır. Diğerini çalıştırmak için, derlemenizden bazı türlere bir referans ekleyin. Anlamaya gerek yok.

+1

Christian doğrudur. Bu bir .NET meselesi, bir Nancy olayı değil. // github: Eğer 'var foo = typeof (NotifyModule) yapmak olsaydı' senin testinde o zaman 0.17 biz https bir Nancy derlemede başvuran tüm meclisleri yükleyerek, bu geçici bir çözüm bulmak, ancak DefaultNancyBootstrapper' 'ile geçerdi .com/NancyFx/Nancy/pull/1001 – TheCodeJunkie

+1

Bu yüzden, uygulamamın birim test kitaplığındaki 'Referanslar'dan biri olarak görünmesi, Nancy'nin onu almasına neden olmaz. –

+1

Hayır, bir montaj referansı yeterli değil. Kodunuzda bir referansa ihtiyacınız var. –