2013-12-17 47 views
19

Tôi đang cố gắng viết các bài kiểm tra đơn vị đầu tiên của mình cho một máy tính, nhưng NetBeans nói rằng nó không thể tìm thấy biểu tượng assertEquals và chú thích @Test.
Tôi có nên đưa thứ gì đó không?
Tôi đang sử dụng NetBeans 7.3.1 và W7.Không thể tìm thấy biểu tượng assertEquals

package calculator; 

import org.junit.Assert.*; 

public class UnitTests{ 

    @Test 
    public void checkAdd(){ 
     assertEquals(2, Calculator.rpnCalc(" 2 3 + ")); 
    } 
} 

EDIT: Xin cảm ơn, hãy nhập mã đó là trợ giúp tĩnh. Chú thích thử nghiệm chỉ được yêu cầu bao gồm

nhập org.junit.Test;

Trả lời

40

assertEquals là phương pháp tĩnh. Vì bạn không thể sử dụng phương pháp tĩnh mà không cần nhập khẩu chúng một cách rõ ràng theo một cách tĩnh, bạn phải sử dụng một trong hai:

import org.junit.Assert; 
... 
Assert.assertEquals(...) 

hay:

import static org.junit.Assert.assertEquals; 
... 
assertEquals(...) 

Đối @Test đó là một chút khác nhau. @Test là chú thích mà bạn có thể xem theo số @. Chú thích được nhập như lớp học.

Vì vậy, bạn nên nhập nó thích:

import org.junit.Test; 

Nói chung tránh sử dụng các kí hiệu khi nhập khẩu như import org.junit.*. Vì lý do, hãy xem Why is using a wild card with a Java import statement bad?.

4

tôi đang làm việc trên JUnit trong java 8 môi trường, sử dụng jUnit4.12

cho tôi: trình biên dịch đã không thể tìm ra assertEquals phương pháp, ngay cả khi tôi sử dụng
import org.junit.Assert;

Vì vậy, tôi đã thay đổi
assertEquals("addb", string);
để
Assert.assertEquals("addb", string);

Vì vậy, nếu bạn đang phải đối mặt với vấn đề liên quan đến assertEqual không được công nhận, sau đó thay đổi nó để Assert.assertEquals(,); nó nên giải quyết vấn đề của bạn

+2

Nếu bạn không sử dụng lệnh nhập ** static ** trực tiếp trên phương thức 'assertEquals', bạn không thể sử dụng nó trong mã của mình mà không có lớp' Assert', xem câu trả lời của tôi! – bobbel

Các vấn đề liên quan