所以这是类下面的链接,它没有主要方法,我试图测试并查看方法[[1]:] [1]中的每一行是否正在处理,如果不是它在哪里得到错误。
答案 0 :(得分:2)
您要找的是JUnit,或者更具体地说,是"Getting Started"下的网站。
简而言之,如果您的班级Dog
使用了这样的方法
public boolean isBrown() {
// some hard & heavy logic
}
你可能想知道它是否有效。为此,您需要在应用程序中使用一些测试类创建一个test
包,其中一个可以命名为DogTests
并包含以下内容:
public class DogTests {
@Test(expected = NullPointerException.class)
public void nullDogShouldFailWithNpe() throws Exception {
new Dog(3, 14, null);
}
@Test
public void brownDogShouldBeBrown() throws Exception {
Animal animal = new Dog(3, 14, "brown");
assertTrue(animal.isBrown());
}
@Test
public void greenDogShouldNotBeBrown() throws Exception {
Animal animal = new Dog(3, 14, "green");
assertTrue(animal.isBrown());
}
}
您可以找到有关这些assert
方法here的文档。
您能看到方法上方的@Test
注释吗?这是一个JUnit 4结构,它说“嘿,我是一个测试方法。从这个类运行测试时,也运行我!”这里不需要main()
方法 - 当你试图“运行”包含的类时,你的IDE会注意到所有 @Test
注释方法本身,运行它们,并向你显示测试结果。
您甚至可以安排多个测试套件,同时运行测试,在构建应用程序时自动运行它们以及所有其他类型的测试魔术......从这开始,在网站上挖掘,您很快就会发现更多单位测试善良。
答案 1 :(得分:0)
当测试的方法是非静态的时,首先构造对象,然后调用方法。如果您的JUnit测试用例位于与正在测试的类同名的包中,则可以访问公共成员和受保护成员。这是针对没有主要方法的HashMap
类的示例测试。
public void testDuplicateKey() throws Exception {
HashMap<String,String> map=new HashMap();
// setup
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
assertEquals(3, map.size());
// overwrite an existing key
map.put("key2", "value4");
assertEquals(3, map.size());
assertEquals("value4", map.get("key2"));
}
答案 2 :(得分:-1)
使用BlueJ。它允许您在没有任何Main方法的情况下处理对象。
只需将Java文件导入IDE,然后右键单击所获得的类的Class Diagram演示文稿,即可创建它的对象。 IDE非常基本且用户友好,因为它在类和对象的图片表示中非常有用。
如果您拥有指定类或类的对象,则可以在IDE底部获取对象,您可以右键单击该对象进行交互。祝你好运。