{"id":30183,"date":"2017-09-29T00:44:29","date_gmt":"2017-09-28T21:14:29","guid":{"rendered":"https:\/\/www.sourcebaran.com\/?p=30183"},"modified":"2021-07-23T21:15:53","modified_gmt":"2021-07-23T16:45:53","slug":"learning-angularjs-testing","status":"publish","type":"post","link":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html","title":{"rendered":"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS"},"content":{"rendered":"
\"\u0641\u06cc\u0644\u0645<\/a>

\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS<\/p><\/div>\n

\u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc<\/a> \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc<\/span> \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647 \u0648 \u062f\u0631 1 \u0633\u0627\u0639\u062a \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u06cc\u0633\u062a \u0633\u0631\u0641\u0635\u0644 \u0647\u0627 \u062f\u0648\u0631\u0647 Lynda Learning AngularJS Testing \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0645\u0637\u0644\u0628\u060c \u0628\u0627 \u0645\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f…<\/p>\n

<\/p>\n

\u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS<\/span><\/h2>\n
    \n
  • \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u00a0Angular, Grunt, Karma, \u0648 Jasmine \u0628\u0631\u0627\u06cc \u062a\u0633\u062a<\/li>\n
  • \u06a9\u0646\u062a\u0631\u0644 \u062a\u0633\u062a<\/li>\n
  • \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u062a\u0633\u062a<\/li>\n
  • \u0628\u0627\u0632\u0631\u0633\u06cc \u0646\u0627\u0648\u0628\u0631\u06cc \u0628\u06cc\u0646 \u0642\u0637\u0639\u0627\u062a \u0628\u0627 \u062a\u0633\u062a End2End<\/li>\n
  • \u0627\u06cc\u062c\u0627\u062f \u062e\u062f\u0645\u0627\u062a REST API \u0648 \u062a\u0633\u062a \u0648\u0627\u062d\u062f \u0622\u0646\u0647\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631 \u067e\u0633\u0646\u062f<\/li>\n<\/ul>\n
    Lynda Learning AngularJS Testing\r\n\r\nNote: Learning AngularJS Testing was created by Packt Publishing. It was originally released on 12\/9\/15. We are pleased to host this training in our library.\r\n\r\nAngularJS offers the perfect balance between layout and code, making the framework a favorite of developers around the world. But what you might not know is that Angular also provides an outstanding infrastructure for testing, for developing bug-free and easily maintainable applications. Learning AngularJS Testing helps you to understand the different aspects involved in testing Angular components, including controllers and directives, with the help of a practical pizza-ordering application.\r\n\r\nAuthor Rudolf Olah starts by installing and initializing various helpful testing tools, such as Karma, Jasmine, and Grunt. Then he creates controllers for ordering the pizza and reviewing the order, and tests them with and without dependencies. Chapter 3 shows how to create accordion directives for the application, unit test them, and resolve the errors if these tests fail. Rudolf also goes through testing of the navigation between two controllers with the help of End2End testing. Finally, learn how to modify services to use the $resource module and interact with REST API web services, as well as unit test them with the help of mocks and spies. Rudolf also shows how to create and test directives and controllers that fetch information from the service and display it.\r\n\r\nTopics include:\r\nConfiguring Angular, Grunt, Karma, and Jasmine for testing\r\nTesting controllers\r\nTesting directives\r\nInspecting the navigation between components with End2End testing\r\nCreating REST API services and unit testing them to make your app compelling and user friendly<\/pre>\n

     <\/p>\n

     <\/p>\n\n\n

    \n \n
    \n \n
    \n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n <\/div>\n \n
    \n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n
    \n \n\n
    <\/div>\n <\/div>\n <\/div>\n<\/div>\n \n\n
    \n 5\/5 - (1 \u0627\u0645\u062a\u06cc\u0627\u0632) <\/div>\n <\/div>\n","protected":false},"excerpt":{"rendered":"

    \u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647 \u0648 \u062f\u0631 1 \u0633\u0627\u0639\u062a \u0627\u0631\u0627\u0626\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0644\u06cc\u0633\u062a \u0633\u0631\u0641\u0635\u0644 \u0647\u0627 \u062f\u0648\u0631\u0647 Lynda Learning AngularJS Testing \u062f\u0631 \u0627\u062f\u0627\u0645\u0647 \u0645\u0637\u0644\u0628\u060c \u0628\u0627 \u0645\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627\u0634\u06cc\u062f…<\/p>\n","protected":false},"author":15,"featured_media":30184,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13807,172],"tags":[14346,14345,12,14340,14344,14343,14341,14342,14339],"acf":[],"yoast_head":"\n\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS - \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646<\/title>\n<meta name=\"description\" content=\"\u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html\" \/>\n<meta property=\"og:locale\" content=\"fa_IR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS\" \/>\n<meta property=\"og:description\" content=\"\u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647\" \/>\n<meta property=\"og:url\" content=\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html\" \/>\n<meta property=\"og:site_name\" content=\"\u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc - \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0628\u0627 \u0637\u0639\u0645 \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/sourcebaran\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-28T21:14:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-23T16:45:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sourcebaran.com\/wp-content\/uploads\/2017\/09\/AngularJS.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"704\" \/>\n\t<meta property=\"og:image:height\" content=\"346\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc\" \/>\n<meta name=\"twitter:label1\" content=\"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u062f\u0642\u06cc\u0642\u0647\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#article\",\"isPartOf\":{\"@id\":\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html\"},\"author\":{\"name\":\"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc\",\"@id\":\"https:\/\/www.sourcebaran.com\/#\/schema\/person\/67435619ffcd527d1690364c320cf04e\"},\"headline\":\"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS\",\"datePublished\":\"2017-09-28T21:14:29+00:00\",\"dateModified\":\"2021-07-23T16:45:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html\"},\"wordCount\":25,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sourcebaran.com\/#organization\"},\"keywords\":[\"Lynda Learning AngularJS Testing\",\"\u0622\u0645\u0648\u0632\u0634 AngularJS\",\"\u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\",\"\u0622\u0645\u0648\u0632\u0634 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Grunt\",\"\u0627\u06cc\u062c\u0627\u062f \u062e\u062f\u0645\u0627\u062a REST API\",\"\u0628\u0627\u0632\u0631\u0633\u06cc \u0646\u0627\u0648\u0628\u0631\u06cc \u0628\u06cc\u0646 \u0642\u0637\u0639\u0627\u062a \u0628\u0627 \u062a\u0633\u062a End2End\",\"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Angular\",\"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Jasmine \u0628\u0631\u0627\u06cc \u062a\u0633\u062a\",\"\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Karma\"],\"articleSection\":[\"AngularJS\",\"\u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc\"],\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html\",\"url\":\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html\",\"name\":\"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS - \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646\",\"isPartOf\":{\"@id\":\"https:\/\/www.sourcebaran.com\/#website\"},\"datePublished\":\"2017-09-28T21:14:29+00:00\",\"dateModified\":\"2021-07-23T16:45:53+00:00\",\"description\":\"\u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647\",\"breadcrumb\":{\"@id\":\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#breadcrumb\"},\"inLanguage\":\"fa-IR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u062e\u0627\u0646\u0647\",\"item\":\"https:\/\/www.sourcebaran.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sourcebaran.com\/#website\",\"url\":\"https:\/\/www.sourcebaran.com\/\",\"name\":\"\u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc - \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0628\u0627 \u0637\u0639\u0645 \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646\",\"description\":\"\u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0628\u0627 \u0637\u0639\u0645 \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646\",\"publisher\":{\"@id\":\"https:\/\/www.sourcebaran.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sourcebaran.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fa-IR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.sourcebaran.com\/#organization\",\"name\":\"\u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646\",\"url\":\"https:\/\/www.sourcebaran.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/www.sourcebaran.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.sourcebaran.com\/wp-content\/uploads\/2019\/10\/HeaderLogo.png\",\"contentUrl\":\"https:\/\/www.sourcebaran.com\/wp-content\/uploads\/2019\/10\/HeaderLogo.png\",\"width\":300,\"height\":90,\"caption\":\"\u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646\"},\"image\":{\"@id\":\"https:\/\/www.sourcebaran.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/sourcebaran\",\"http:\/\/instagram.com\/sourcebaran\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sourcebaran.com\/#\/schema\/person\/67435619ffcd527d1690364c320cf04e\",\"name\":\"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fa-IR\",\"@id\":\"https:\/\/www.sourcebaran.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70ee3e5ba3da8e8c58dc1729ab5282eb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70ee3e5ba3da8e8c58dc1729ab5282eb?s=96&d=mm&r=g\",\"caption\":\"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS - \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646","description":"\u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html","og_locale":"fa_IR","og_type":"article","og_title":"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS","og_description":"\u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647","og_url":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html","og_site_name":"\u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc - \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0628\u0627 \u0637\u0639\u0645 \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646","article_publisher":"https:\/\/www.facebook.com\/sourcebaran","article_published_time":"2017-09-28T21:14:29+00:00","article_modified_time":"2021-07-23T16:45:53+00:00","og_image":[{"width":704,"height":346,"url":"https:\/\/www.sourcebaran.com\/wp-content\/uploads\/2017\/09\/AngularJS.jpg","type":"image\/jpeg"}],"author":"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc","twitter_misc":{"\u0646\u0648\u0634\u062a\u0647\u200c\u0634\u062f\u0647 \u0628\u062f\u0633\u062a":"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc","\u0632\u0645\u0627\u0646 \u062a\u0642\u0631\u06cc\u0628\u06cc \u0628\u0631\u0627\u06cc \u062e\u0648\u0627\u0646\u062f\u0646":"1 \u062f\u0642\u06cc\u0642\u0647"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#article","isPartOf":{"@id":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html"},"author":{"name":"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc","@id":"https:\/\/www.sourcebaran.com\/#\/schema\/person\/67435619ffcd527d1690364c320cf04e"},"headline":"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS","datePublished":"2017-09-28T21:14:29+00:00","dateModified":"2021-07-23T16:45:53+00:00","mainEntityOfPage":{"@id":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html"},"wordCount":25,"commentCount":0,"publisher":{"@id":"https:\/\/www.sourcebaran.com\/#organization"},"keywords":["Lynda Learning AngularJS Testing","\u0622\u0645\u0648\u0632\u0634 AngularJS","\u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc","\u0622\u0645\u0648\u0632\u0634 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Grunt","\u0627\u06cc\u062c\u0627\u062f \u062e\u062f\u0645\u0627\u062a REST API","\u0628\u0627\u0632\u0631\u0633\u06cc \u0646\u0627\u0648\u0628\u0631\u06cc \u0628\u06cc\u0646 \u0642\u0637\u0639\u0627\u062a \u0628\u0627 \u062a\u0633\u062a End2End","\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Angular","\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Jasmine \u0628\u0631\u0627\u06cc \u062a\u0633\u062a","\u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Karma"],"articleSection":["AngularJS","\u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc"],"inLanguage":"fa-IR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#respond"]}]},{"@type":"WebPage","@id":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html","url":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html","name":"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS - \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646","isPartOf":{"@id":"https:\/\/www.sourcebaran.com\/#website"},"datePublished":"2017-09-28T21:14:29+00:00","dateModified":"2021-07-23T16:45:53+00:00","description":"\u0627\u0632 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646 \u062f\u0631 \u062e\u062f\u0645\u062a \u062f\u0648\u0633\u062a\u0627\u0646 \u0639\u0632\u06cc\u0632 \u0647\u0633\u062a\u06cc\u0645 \u0628\u0627 \u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS \u0628\u0647 \u0632\u0628\u0627\u0646 \u0627\u0635\u0644\u06cc \u06a9\u0647 \u0645\u062d\u0635\u0648\u0644 \u0634\u0631\u06a9\u062a \u0644\u06cc\u0646\u062f\u0627 \u0628\u0648\u062f\u0647","breadcrumb":{"@id":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#breadcrumb"},"inLanguage":"fa-IR","potentialAction":[{"@type":"ReadAction","target":["http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html"]}]},{"@type":"BreadcrumbList","@id":"http:\/\/www.sourcebaran.com\/learning-angularjs-testing.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u062e\u0627\u0646\u0647","item":"https:\/\/www.sourcebaran.com\/"},{"@type":"ListItem","position":2,"name":"\u0641\u06cc\u0644\u0645 \u0622\u0645\u0648\u0632\u0634\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u0627\u06cc AngularJS"}]},{"@type":"WebSite","@id":"https:\/\/www.sourcebaran.com\/#website","url":"https:\/\/www.sourcebaran.com\/","name":"\u0622\u0645\u0648\u0632\u0634 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc - \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0628\u0627 \u0637\u0639\u0645 \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646","description":"\u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0628\u0627 \u0637\u0639\u0645 \u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646","publisher":{"@id":"https:\/\/www.sourcebaran.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sourcebaran.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fa-IR"},{"@type":"Organization","@id":"https:\/\/www.sourcebaran.com\/#organization","name":"\u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646","url":"https:\/\/www.sourcebaran.com\/","logo":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/www.sourcebaran.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.sourcebaran.com\/wp-content\/uploads\/2019\/10\/HeaderLogo.png","contentUrl":"https:\/\/www.sourcebaran.com\/wp-content\/uploads\/2019\/10\/HeaderLogo.png","width":300,"height":90,"caption":"\u0633\u0648\u0631\u0633 \u0628\u0627\u0631\u0627\u0646"},"image":{"@id":"https:\/\/www.sourcebaran.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/sourcebaran","http:\/\/instagram.com\/sourcebaran"]},{"@type":"Person","@id":"https:\/\/www.sourcebaran.com\/#\/schema\/person\/67435619ffcd527d1690364c320cf04e","name":"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc","image":{"@type":"ImageObject","inLanguage":"fa-IR","@id":"https:\/\/www.sourcebaran.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/70ee3e5ba3da8e8c58dc1729ab5282eb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70ee3e5ba3da8e8c58dc1729ab5282eb?s=96&d=mm&r=g","caption":"\u0635\u0627\u0628\u0631 \u0628\u0648\u0633\u062a\u0627\u0646\u06cc"}}]}},"views":562,"_links":{"self":[{"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/posts\/30183"}],"collection":[{"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/users\/15"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/comments?post=30183"}],"version-history":[{"count":4,"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/posts\/30183\/revisions"}],"predecessor-version":[{"id":30198,"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/posts\/30183\/revisions\/30198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/media\/30184"}],"wp:attachment":[{"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/media?parent=30183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/categories?post=30183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sourcebaran.com\/wp-json\/wp\/v2\/tags?post=30183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}