Hướng dẫn phpunit does not perform assertions - phpunit không thực hiện các xác nhận

Tôi muốn vượt qua các bài kiểm tra nhận được như sau: "Bài kiểm tra này không thực hiện bất kỳ xác nhận nào"

Tôi biết tôi có thể thêm một cái gì đó như

public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
3 Tuy nhiên, có thể thêm một cái gì đó vào cấu hình để làm cho các thử nghiệm này vượt qua hơn?

Tôi khá chắc chắn điều này chỉ xảy ra vì phiên bản PHPUNIT 3.5.0 với sự ra đời của

public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
4

Hướng dẫn phpunit does not perform assertions - phpunit không thực hiện các xác nhận

hỏi ngày 12 tháng 7 năm 2011 lúc 14:55Jul 12, 2011 at 14:55

Chỉnh sửa: Bạn đã có một vài lựa chọn tùy thuộc vào phiên bản bạn đang sử dụng, liệu bạn có muốn bỏ qua tất cả các bài kiểm tra rủi ro hay chỉ một vài, và nếu bạn muốn nó là vĩnh viễn hay tạm thời. You've got a few choices depending on which version you're using, whether you want to ignore all risky tests or just a few, and if you want it to be permanent or temporary.

Trước 5.6, nếu bạn không muốn thêm các xác nhận không có thật vào tất cả các bài kiểm tra của mình, bạn phải tránh chuyển

public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
4 cho PHPUNIT hoặc thêm
public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
6 vào
public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
7 của bạn. Điểm của tùy chọn này là "Đánh dấu một bài kiểm tra là không đầy đủ nếu không có xác nhận nào được thực hiện."

Tại một số điểm, PHPunit đã thêm công tắc dòng lệnh

public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
8 liên quan và tùy chọn cấu hình
public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
9. Tôi chưa kiểm tra xem chúng là thay thế hoặc các phiên bản hạt mịn bổ sung.

Các tùy chọn trên ảnh hưởng đến tất cả các bài kiểm tra rủi ro. Sử dụng chúng sẽ để bạn mở để vô tình viết các bài kiểm tra mà không cần xác nhận. Các tùy chọn mới sau đây an toàn hơn khi bạn phải đánh dấu một cách có chủ đích từng bài kiểm tra rủi ro mà bạn muốn cho phép.

Phpunit 5.6 đã thêm chú thích

/**
 * @doesNotPerformAssertions
 */
public function testCodeWithoutUsingAssertions()
{
    // do stuff...
}
0 để đánh dấu các trường hợp thử nghiệm riêng lẻ là "không rủi ro" mặc dù chúng không thực hiện các xác nhận.

/**
 * @doesNotPerformAssertions
 */
public function testWithoutAsserting() {
    $x = 5;
}

Phpunit 7.2 đã giới thiệu

/**
 * @doesNotPerformAssertions
 */
public function testCodeWithoutUsingAssertions()
{
    // do stuff...
}
1 làm điều tương tự.

public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}

Hướng dẫn phpunit does not perform assertions - phpunit không thực hiện các xác nhận

Wosi

39.3K15 Huy hiệu vàng74 Huy hiệu bạc77 Huy hiệu đồng15 gold badges74 silver badges77 bronze badges

Đã trả lời ngày 12 tháng 7 năm 2011 lúc 18:59Jul 12, 2011 at 18:59

David Harknessdavid HarknessDavid Harkness

35K10 Huy hiệu vàng111 Huy hiệu bạc129 Huy hiệu đồng10 gold badges111 silver badges129 bronze badges

3

Sử dụng chú thích

/**
 * @doesNotPerformAssertions
 */
public function testCodeWithoutUsingAssertions()
{
    // do stuff...
}
0:

/**
 * @doesNotPerformAssertions
 */
public function testCodeWithoutUsingAssertions()
{
    // do stuff...
}

Đã trả lời ngày 20 tháng 6 năm 2018 lúc 17:56Jun 20, 2018 at 17:56

Nathan Arthurnathan ArthurNathan Arthur

7.4335 huy hiệu vàng52 Huy hiệu bạc77 Huy hiệu đồng5 gold badges52 silver badges77 bronze badges

4

Sử dụng

/**
 * @doesNotPerformAssertions
 */
public function testCodeWithoutUsingAssertions()
{
    // do stuff...
}
3. Xem bên dưới.

class NoAssertTest extends PHPUnit_Framework_TestCase
{
    function testWithoutAssertions() {
        $x = 5;

        // Increment the assertion count to signal this test passed.
        // This is important if you use a @depends on this test
        $this->addToAssertionCount(1);
    }
}

Đã trả lời ngày 6 tháng 9 năm 2017 lúc 0:54Sep 6, 2017 at 0:54

Hướng dẫn phpunit does not perform assertions - phpunit không thực hiện các xác nhận

DrakesdrakesDrakes

22.6K3 Huy hiệu vàng 50 Huy hiệu bạc93 Huy hiệu Đồng3 gold badges50 silver badges93 bronze badges

Nếu bạn có PHP Simpletest, một cách tiếp cận khác sẽ là sử dụng:

$this->pass();

Điều này sẽ đánh dấu bài kiểm tra khi hoàn thành và thông qua.

Mặt khác, để kiểm tra mà bạn muốn thất bại, bạn có thể sử dụng:

$this->fail();

Ví dụ:

if (someComplicatedLogicValidation) {
    // Do more stuff and asserts
} else{
    $this->fail();
}

Tôi đã thử cái này trong Php 5.5 và hoạt động:

function testThatWorks() {
    $this->pass();
}

function testThatFails() {
    $this->fail();
}

Output:

1) Thất bại tại [... Bài kiểm tra.Unit.php Line 23] trong TestThatFails trong Bài kiểm tra trong .../exestpleteT.Unit.php Fail trong 3.02S

Có thể phương thức vượt qua vẫn có thể dễ dàng thực hiện trong phpunit. Nguồn từ Simpletest:

function pass($message = "Pass") {
    if (! isset($this->reporter)) {
        trigger_error('Can only make assertions within test methods');
    }
    $this->reporter->paintPass(
    $message . $this->getAssertionLine());
    return true;
}

Đã trả lời ngày 6 tháng 1 năm 2015 lúc 17:54Jan 6, 2015 at 17:54

Rudolf realrudolf realRudolf Real

1.90823 Huy hiệu bạc27 Huy hiệu đồng23 silver badges27 bronze badges

7

Trong trường hợp của tôi, bài kiểm tra không có xác nhận vì tôi chỉ kiểm tra mọi thứ bằng cách sử dụng

/**
 * @doesNotPerformAssertions
 */
public function testCodeWithoutUsingAssertions()
{
    // do stuff...
}
4 lib để chế giễu và kiểm tra xem các phương pháp có được gọi như mong đợi ...

Phpunit theo mặc định mong đợi rằng bài kiểm tra có ít nhất một khẳng định và cảnh báo bạn sẽ đặt nó.

Chỉ cần thêm dòng này trong bất kỳ phần nào trong bài kiểm tra của bạn là đủ.

$this->expectNotToPerformAssertions();

Nhưng bạn cũng có thể thiết kế một bài kiểm tra mà trong một số trường hợp có xác nhận hay không

public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
0

Tóm lại, nó không phải là một lỗi ... đó là một tính năng.

Đã trả lời ngày 15 tháng 5 năm 2020 lúc 10:37May 15, 2020 at 10:37

Hướng dẫn phpunit does not perform assertions - phpunit không thực hiện các xác nhận

Oscar Gallardooscar GallardoOscar Gallardo

1.9123 huy hiệu vàng24 Huy hiệu bạc41 Huy hiệu đồng3 gold badges24 silver badges41 bronze badges

Tôi đã tạo một chức năng siêu lớp và đặt Simpletest ở đó:

public function testWithoutAsserting() {
    $this->expectNotToPerformAssertions();
    $x = 5;
}
1

Sau đó, bạn có thể gọi nó

$this->pass();

Đã trả lời ngày 6 tháng 4 năm 2021 lúc 21:31Apr 6, 2021 at 21:31

Hướng dẫn phpunit does not perform assertions - phpunit không thực hiện các xác nhận

0

Khẳng định trong phpunit là gì?

Hàm assertSame () là hàm tích hợp trong phpunit và được sử dụng để khẳng định liệu giá trị thu được có giống như giá trị dự kiến hay không.Khẳng định này sẽ trả về đúng trong trường hợp nếu giá trị dự kiến giống như giá trị thực tế khác trả về sai.used to assert whether the actually obtained value is the same as the expected value or not. This assertion will return true in the case if the expected value is the same as the actual value else returns false.

Giả phpunit là gì?

Tương tự như vậy, đối tượng giả phpunit là một đối tượng mô phỏng thực hiện hành vi của một phần của ứng dụng được yêu cầu trong thử nghiệm đơn vị.Các nhà phát triển kiểm soát đối tượng giả bằng cách xác định kết quả được tính toán trước về các hành động.a simulated object that performs the behavior of a part of the application that is required in the unit test. The developers control the mock object by defining the pre-computed results on the actions.

Phiên bản PHPUNIT hiện tại mới nhất là gì?

Phiên bản cho phpunit 9.5.Cập nhật vào ngày 13 tháng 11 năm 2022.PHPUnit 9.5. Updated on Nov 13, 2022.

Phpunit có phải là một khuôn khổ không?

PHPUNIT là một khung thử nghiệm hướng đến lập trình viên cho PHP.Đây là một ví dụ của kiến trúc Xunit cho các khung kiểm tra đơn vị.PHPUNIT 9 là phiên bản ổn định hiện tại.Phpunit 10 hiện đang được phát triển.. It is an instance of the xUnit architecture for unit testing frameworks. PHPUnit 9 is the current stable version. PHPUnit 10 is currently in development.