क्या कोई मुझे नियंत्रकों (और एमवीसी साइट के अन्य पहलुओं) का परीक्षण करने के लिए इस्तेमाल होने वाले एनएसपीसी के कुछ उदाहरण दिखा सकता है?

मैं एनएसपीईसी के साथ काम करना शुरू कर रहा हूं लेकिन मेरे नियंत्रकों को spec या परीक्षण करने के लिए इसका उपयोग करने के लिए सही तरीके से कुछ पॉइंटर्स से प्यार होगा। असल में कुछ उदाहरण बहुत लंबा रास्ता तय करेंगे। क्या वहां कोई उदाहरण परियोजनाएं हैं? सभी मदद की सराहना की जाएगी।

रिचर्ड।

0
जोड़ा संपादित
विचारों: 1
हाय, हाँ, मैं अपनी स्वीकृति/एकीकरण परीक्षणों के लिए specflow का उपयोग करने की योजना बना रहा हूं, लेकिन मुझे समझ में आया कि एनएसपीसी परीक्षण घटकों के लिए बेहतर होगा - ऐसा लगता है कि मैंने आरएसपीईसी पुस्तक में जो सामान्य ज्ञान पढ़ा है, आदि।
जोड़ा लेखक richardwhatever, स्रोत
क्या आपने SpecFlow को देखा है? specflow.org
जोड़ा लेखक danludwig, स्रोत

1 उत्तर

क्यों हां! निम्नानुसार परीक्षण सूट एक संदर्भ कार्यान्वयन से है, 4 अद्वितीय एमवीसी अनुप्रयोग हैं जो सभी एनएसपीईसी को उनके परीक्षण सूट के रूप में उपयोग करते हैं। निश्चित रूप से उन्हें यहां देखें।

यहां परीक्षणों में से एक है। यह विनिर्देश एक लॉगिन पृष्ठ और एक पंजीकरण पृष्ठ की पुष्टि करता है। एक वेबसाइट के लिए।

using System;
using System.Linq;
using NSpec;
using BorrowedGames.Controllers;
using System.Web.Mvc;
using System.Collections.Generic;

namespace BorrowedGames.Tests.Controllers
{
  class describe_AccountController : _borrowed_games
  {
    AccountController controller;

    dynamic user;

    bool authenticated;

    void before_each()
    {
      controller = new AccountController();

      controller.Authenticate = s =>
      {
        authenticated = true;

        SetCurrentUser(controller, Users.ForEmail(s).Id);
      };
    }

    void logging_in()
    {
      context["requesting login page"] =() =>
      {
        act =() => result = controller.LogOn();

        it["returns login page"] =() => 
          (result as object).should_cast_to();
      };

      context["authenticating"] =() =>
      {
        act =() => result = controller.LogOn(new
        {
          Email = "[email protected]",
          Password = "password",
          RedirectUrl = null as string
        });

        context["user exists"] =() =>
        {
          before =() => 
            user = GivenUser("[email protected]", null, "password");

          it["authenicates user"] =() =>
            authenticated.should_be_true();

          it["redirects to home page"] =() => 
            (result.Url as string).should_be("/");

          it["sets user in session"] =() =>
            (controller.UserId()).should_be((decimal)user);
        };

        context["user exists, password doesn't match"] =() =>
        {
          before =() => 
            GivenUser("[email protected]", null, "other");

          it["returns invalid login"] =() => 
            (result.ViewBag.Flash as string).should_be("Login failed.");
        };

        context["user does not exist"] =() =>
        {
          it["returns invalid login"] =() => 
            (result.ViewBag.Flash as string).should_be("Login failed.");
        };
      };
    }

    void registering_for_site()
    {
      context["requesting registration page"] =() =>
      {
        act =() => result = controller.Register();

        it["returns view"] =() => 
          (result as object).should_cast_to();
      };

      context["user registers"] =() =>
      {
        act =() =>
        {
          result = controller.Register(new
          {
            Email = "[email protected]",
            Password = "password",
            PasswordConfirmation = "password"
          });

          user = Users.All().First().Id;
        };

        it["logs in user"] =() => 
          (result.Url as string).should_be("/");

        it["authenticates user"] =() => 
          authenticated.should_be_true();

        it["sets user in session"] =() =>
          ((decimal)controller.UserId()).should_be((decimal)user);

        context["user name is taken"] =() =>
        {
          before =() => GivenUser("[email protected]");

          it["return error stating that user name is taken"] =() =>
            (result.ViewBag.Flash as string).should_be("Email is unavailable.");
        };
      };

      context["registration is invalid"] =() =>
      {
        act =() => result = 
          controller.Register(new 
          { 
            Email = default(string), 
            Password = default(string) 
          });

        it["returns error stating that email is required."] =() =>
          (result.ViewBag.Flash as string).should_be("Email is required.");
      };
    }
  }
}
0
जोड़ा
QAIndia
QAIndia
160 प्रतिभागियों की

QA India ! Unite Here we share job postings , prepare for interviews and share tips/techniques in QA. Please follow following guideline while sharing any job ... QA job # location : # title Company : Title : Requirement: Responsibility: Apply: