[Selenium C#] Bài 9 Cách dùng method Assert do NUnit cung cấp

Cách sử dụng method Assert để verify điều kiện do NUnit cung cấp

Assertions - Classic Model

Mô hình Assert sử dụng một phương pháp riêng biệt để thể hiện từng khẳng định riêng lẻ. (từng hàm riêng)

Assert.AreEqual(28, _actualFuel); // Kiểm tra xem các giá trị được chỉ định có bằng nhau hay không.
Assert.AreNotEqual(28, _actualFuel); // Kiểm tra xem các giá trị được chỉ định có không bằng nhau hay không. Tương tự như AreEqual cho các giá trị số.
Assert.AreSame(_eosystemRocket, _actualRocket); // Kiểm tra xem các đối tượng được chỉ định đều tham chiếu đến cùng một đối tượng hay không
Assert.AreNotSame(_eosystemRocket, _actualRocket); // Kiểm tra xem các đối tượng được chỉ định có tham chiếu đến các đối tượng khác nhau hay không
Assert.IsTrue(_isThereEnoughFuel); // Kiểm tra xem điều kiện đã chỉ định có đúng không
Assert.IsFalse(_isThereEnoughFuel); // Kiểm tra xem điều kiện đã chỉ định có sai hay không
Assert.IsNull(_actualRocket); // Kiểm tra xem đối tượng được chỉ định có phải là null hay không
Assert.IsNotNull(_actualRocket); // Kiểm tra xem đối tượng được chỉ định có phải là không
Assert.IsInstanceOf(_actualRocket, typeof (Falcon9Rocket)); // Kiểm tra xem đối tượng được chỉ định có phải là một thể hiện của kiểu mong đợi hay không
Assert.IsNotInstanceOf(_actualRocket, typeof (Falcon9Rocket)); // Kiểm tra xem đối tượng được chỉ định có phải là một thể hiện của kiểu hay không
StringAssert.AreEqualIgnoringCase(_empleteBellatrixTitle, " Bellatrix "); // Kiểm tra xem các chuỗi được chỉ định có bằng nhau không bỏ qua cách viết hoa của chúng
StringAssert.Contains(_empleteBellatrixTitle, " Bellatrix "); // Kiểm tra xem chuỗi được chỉ định có chứa chuỗi con được chỉ định hay không
StringAssert.DoesNotContain(_empleteBellatrixTitle, " Bellatrix "); // Kiểm tra xem chuỗi được chỉ định có chứa chuỗi con được chỉ định hay không
StringAssert.StartsWith(_expectedBellatrixTitle, " Bellatrix "); // Kiểm tra xem chuỗi được chỉ định có bắt đầu bằng chuỗi con được chỉ định hay không
StringAssert.StartsWith(_expectedBellatrixTitle, " Bellatrix "); // Kiểm tra xem chuỗi được chỉ định có bắt đầu bằng chuỗi con được chỉ định hay không
StringAssert.IsMatch(" ( 281)388-0388 ", @ " (? D {3})? -? * D {3} -? * -? D {4} "); // Kiểm tra xem chuỗi được chỉ định có khớp với một biểu thức chính quy hay không
StringAssert.DoesNotMatch(" 281) 388-0388 ", @ " (? D {3})? -? * D {3} -? * -? D {4} "); // Kiểm tra xem chuỗi đã chỉ định có khớp với một biểu thức chính quy hay không
CollectionAssert.AreEqual(_eosystemRockets, _actualRockets); // Kiểm tra xem các tập hợp được chỉ định có các phần tử giống nhau theo cùng thứ tự và số lượng hay không.
CollectionAssert.AreNotEqual(_eosystemRockets, _actualRockets); // Kiểm tra xem các tập hợp được chỉ định không có các phần tử giống nhau hoặc các phần tử có thứ tự và số lượng khác nhau.
CollectionAssert.AreEquivalent(_eosystemRockets, _actualRockets); // Kiểm tra xem hai tập hợp có chứa các phần tử giống nhau hay không.
CollectionAssert.AreNotEquivalent(_eosystemRockets, _actualRockets); // Kiểm tra xem hai tập hợp có chứa các phần tử khác nhau hay không.
CollectionAssert.AllItemsAreInstancesOfType(_eosystemRockets, _actualRockets); // Kiểm tra xem tất cả các phần tử trong bộ sưu tập được chỉ định có phải là phiên bản của kiểu mong đợi hay không
CollectionAssert.AllItemsAreNotNull(_eosystemRockets); // Kiểm tra xem tất cả các mục trong bộ sưu tập đã chỉ định có phải không
CollectionAssert.AllItemsAreUnique(_eosystemRockets); // Kiểm tra xem tất cả các mục trong bộ sưu tập được chỉ định có phải là duy nhất hay không
CollectionAssert.Contains(_actualRockets, falcon9); // Kiểm tra xem bộ sưu tập được chỉ định có chứa phần tử được chỉ định hay không
CollectionAssert.DoesNotContain(_actualRockets, falcon9); // Kiểm tra xem bộ sưu tập được chỉ định có chứa phần tử được chỉ định hay không
CollectionAssert.IsSubsetOf(_eosystemRockets, _actualRockets); // Kiểm tra xem một bộ sưu tập có phải là một tập hợp con của một bộ sưu tập khác hay không
CollectionAssert.IsNotSubsetOf(_eosystemRockets, _actualRockets); // Kiểm tra xem một tập hợp có phải là một tập hợp con của một tập hợp khác hay không
Assert.Throws< ArgumentNullException > (() => new Regex(null)); // Kiểm tra xem mã được chỉ định bởi người được ủy quyền có ném chính xác ngoại lệ đã cho của loại T hay không

 

Assertions - Constraint Model

Mô hình Assert dựa trên ràng buộc sử dụng một phương thức duy nhất của lớp Assert (hàm That) cho tất cả các xác nhận.

Assert.That(28, Is.EqualTo(_actualFuel)); // Kiểm tra xem các giá trị được chỉ định có bằng nhau hay không.
Assert.That(28, Is.Not.EqualTo(_actualFuel)); // Kiểm tra xem các giá trị được chỉ định có không bằng nhau hay không. Tương tự như AreEqual cho các giá trị số.
Assert.That(_eosystemRocket, Is.SameAs(_actualRocket)); // Kiểm tra xem các đối tượng được chỉ định đều tham chiếu đến cùng một đối tượng hay không
Assert.That(_eosystemRocket, Is.Not.SameAs(_actualRocket)); // Kiểm tra xem các đối tượng được chỉ định có tham chiếu đến các đối tượng khác nhau hay không
Assert.That(_isThereEnoughFuel, Is.True); // Kiểm tra xem điều kiện đã chỉ định có đúng không
Assert.That(_isThereEnoughFuel, Is.False); // Kiểm tra xem điều kiện đã chỉ định có sai hay không
Assert.That(_actualRocket, Is.Null); // Kiểm tra xem đối tượng được chỉ định có phải là null hay không
Assert.That(_actualRocket, Is.Not.Null); // Kiểm tra xem đối tượng được chỉ định có phải là không
Assert.That(_actualRocket, Is.InstanceOf < Falcon9Rocket > ()); // Kiểm tra xem đối tượng được chỉ định có phải là một thể hiện của kiểu mong đợi hay không
Assert.That(_actualRocket, Is.Not.InstanceOf < Falcon9Rocket > ()); // Kiểm tra xem đối tượng được chỉ định có phải là một thể hiện của kiểu hay không
Assert.That(_actualFuel, Is.GreaterThan(20)); // Kiểm tra xem đối tượng được chỉ định có lớn hơn giá trị được chỉ định hay không
Assert.That(28, Is.EqualTo(_actualFuel).Trong(0, 50));
// Kiểm tra xem các giá trị được chỉ định có gần bằng nhau trong dung sai được chỉ định hay không.
Assert.That(28, Is.EqualTo(_actualFuel).Within(2).Percent);
// Kiểm tra xem các giá trị được chỉ định có gần bằng nhau trong dung sai% được chỉ định hay không.
Assert.That(_actualRocketParts, Has.Exactly(10).Items);
// Kiểm tra xem bộ sưu tập được chỉ định có chính xác số lượng mục đã nêu trong đó hay không.
Assert.That(_actualRocketParts, Is.Unique);
// Kiểm tra xem các mục trong bộ sưu tập được chỉ định có phải là duy nhất hay không.
Assert.That(_actualRocketParts, Does.Contain(_eosystemRocketPart));
// Kiểm tra xem một mục nhất định có trong danh sách các mục đã chỉ định hay không.
Assert.That(_actualRocketParts, Has.Exactly(1).Khớp với < RocketPart > (part => part.Name == " Door " && part.Height == " 200 "));
// Kiểm tra xem bộ sưu tập được chỉ định có chính xác mục đã nêu trong đó hay không.


Code nào:

using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SeleniumCSharp.Initialize;

namespace SeleniumCSharp.Bai9_Assert
{
    [TestFixture]
    class AssertClass : Init_Program
    {
        [Test]
        public void AssertDemo()
        {
            driver.Url = "https://anhtester.com";
            string title = driver.Title;
            Console.Write(title);
            //Kiểm tra bằng
            Assert.AreEqual(title, "Anh Tester - Automation Testing");

            //title.Contains("Anh Tester") nghĩa là kiểm tra Title có chứa nội dung "Anh Tester" hay không
            //Nếu chứa thì trả về True
            //Mà hàm IsTrue để kiểm tra True nên các bạn hiểu rồi đó. Nó sẽ trả về True luôn
            Assert.IsTrue(title.Contains("Anh Tester"));
        }
    }
}

Các bạn thử các trường hợp khác nhé. Thường thì mình sẽ dùng so sánh Bằng, so sánh Chứa và so sánh True/False


À cái Init_Program là này nè =))

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Remote;

namespace SeleniumCSharp.Initialize
{
    
    public class Init_Program
    {
        public IWebDriver driver;
        
        [SetUp]
        public void SetupTest()
        {
            driver = new ChromeDriver("D:\\ANHTESTER\\BrowserDriver");
            driver.Manage().Window.Maximize();
            //Set thời gian chờ ngầm định 20s cho tất cả các Step
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            // Đặt thời gian chờ tải trang mặc định (đơn vị giây)
            driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(20);
        }

        [TearDown]
        public void CloseTest()
        {
            Thread.Sleep(2000);
            driver.Quit();
        }
    }
}
  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: new

Filename: post/post_detail.php

Line Number: 378

Backtrace:

File: /home/anhtest2/public_html/application/views/frontend/post/post_detail.php
Line: 378
Function: _error_handler

File: /home/anhtest2/public_html/application/views/frontend/layout/layout_view.php
Line: 348
Function: view

File: /home/anhtest2/public_html/application/core/MY_Controller.php
Line: 34
Function: view

File: /home/anhtest2/public_html/application/controllers/frontend/Post.php
Line: 59
Function: render

File: /home/anhtest2/public_html/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Notice

Message: Trying to get property 'slug' of non-object

Filename: post/post_detail.php

Line Number: 378

Backtrace:

File: /home/anhtest2/public_html/application/views/frontend/post/post_detail.php
Line: 378
Function: _error_handler

File: /home/anhtest2/public_html/application/views/frontend/layout/layout_view.php
Line: 348
Function: view

File: /home/anhtest2/public_html/application/core/MY_Controller.php
Line: 34
Function: view

File: /home/anhtest2/public_html/application/controllers/frontend/Post.php
Line: 59
Function: render

File: /home/anhtest2/public_html/index.php
Line: 315
Function: require_once

https://anhtester.com//blog/selenium-c/" data-width="100%" data-numposts="4">