- 浏览: 580563 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (188)
- java (14)
- web (14)
- web service (3)
- 杂谈 (14)
- Version Control (13)
- software test (30)
- linux (17)
- database (3)
- distributed storage and computing (1)
- ejb (7)
- project building (46)
- spring & IOC (2)
- Thread (2)
- xml (2)
- tool software (0)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
- project manager (9)
- OSGI (1)
- nosql (3)
最新评论
-
sp42:
好搞笑
你懂不懂xml! (2) -
cherishmmo2004:
感觉你们都很牛掰,我们做的一个运维平台也是用karaf的,用k ...
基于osgi开发大型的企业应用 -
liubey:
“自作聪明”的使用了读写锁,其实只使用ReentrantLoc ...
编码最佳实践(4)--小心LinkedHashMap的get()方法 -
liubey:
你这个代码是sublist后仍然一直持有这个sub的引用,一般 ...
编码最佳实践(5)--小心!这只是冰山一角 -
xiegqooo:
初学maven(5)-使用assembly plugin实现自定义打包
一直在使用easymock作为mock工具,但是easymock有一个一直令我极其恼火的地方:easymock将interface和class的mock区分开,给出了针对interface mock的easyMock和针对class mock的easyMock class extension。两种mock被严格区分开,连jar包都是两个,使用时不能混用,比如不能用easymock (非class extension)来mock class。
这也就算了,最要命的地方是,easyMock和easyMock class extension在使用时,class名是相同的,只是package不同。这会导致一个非常令人抓狂的问题:如果在同一个测试类中,需要同时使用interface mock和class mock,就必须同时使用org.easymock.EasyMock和org.easymock.classextension.EasyMock,由于java import只能import一个,因此另外一个就必须使用全限定名,如:
import org.easymock.EasyMock;
...
Easymock.createMock(...);
org.easymock.classextension.EasyMock.createMock(...);
编码的时候稍有不慎就搞错,代码难写而且难看。很明显,这是一个没有必要的设计,因为使用者通常并不关心mock的是interface还是class。
近日得知easymock已经发布了新的3.0版本,该版本的主要改进就是消除上述的问题,新版本中可以直接mock class,不再强制使用easyMock class extension。
以下是easymock官网 http://easymock.org/ 的发布信息:
010-05-08: EasyMock 3.0 is available. Perform class mocking directly. EasyMock 1 classes removed.
2010-05-08: EasyMock 3.0 Class Extension is available. Now deprecated. Only a proxy over EasyMock to provide backward compatibility.
可以看到为了兼容2.*版本的就有代码,3.0之中还是发布了Class Extension版本,作为旧有的2.*代码和新的3.0之间的代理。不过明确标记为"deprecated"了。
试用了一下,新的3.0版本中,直接使用org.easymock.EasyMock,可以在同一个case中同时混合mock interface和class,使用方式和以往相同。恩,明显感觉使用方便了许多。
顺便做了一下兼容性测试,针对旧有的使用2.*版本的class mock的测试案例,尝试使用两种方法:
1. 不修改原有代码,使用3.0的class extension来保持兼容
代码编译通过,测试案例正常运行。
这个方案适合项目较大时先整体升级,保证测试案例可以运行,后续再逐步转移到3.0版本。
2. 修改原有代码,不再使用class extension
代码只需一个改动,即将原有的org.easymock.classextension.EasyMock 修改为org.easymock.EasyMock,通常只要简单修订import即可。eclispe下简单ctrl +shit + o一招即可搞定。
两个方法组合使用,就可以平稳的将原有的2.*的测试案例转移到新的3.0版本中。
强烈推荐还在使用easymock 2.*的朋友们升级到3.0版本。
是的,新版本刚发布不久。
我是经同事告知才知道3.0发布的。发这个帖子出来,就是希望能帮到和我一样被class extension困扰的朋友升级到3.0。
本人赞成要多运动,但往往工作忙、应酬多,所以……
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
我们是分层开发的,基本上算是集成测试吧。目前还不知道有那些技术能给B/S结构的做完整的单元测试。
给B/S结构的做完整的单元测试确实不容易,不过即使抛开B不谈,你的S端总的有单元测试吧?
s端的业务逻辑,实现逻辑这些都是可以用单元测试来保证质量的,我相信你们的s端怎么也不至于简单到只要得到两个参数a,b,然后直接return (a + B)这么简单吧?
本人赞成要做单元测试的,但往往工期很紧张。没办法,能省就省(设计、文档、评审都没有,呵呵)。
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
我们是分层开发的,基本上算是集成测试吧。目前还不知道有那些技术能给B/S结构的做完整的单元测试。
给B/S结构的做完整的单元测试确实不容易,不过即使抛开B不谈,你的S端总的有单元测试吧?
s端的业务逻辑,实现逻辑这些都是可以用单元测试来保证质量的,我相信你们的s端怎么也不至于简单到只要得到两个参数a,b,然后直接return (a + B)这么简单吧?
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
我们是分层开发的,基本上算是集成测试吧。目前还不知道有那些技术能给B/S结构的做完整的单元测试。
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
这个,未免强大了点,你们是怎么保证代码质量的?
另外,你们为何结合使用两个mock框架,只用jmockit一个不可以么?
像我现在就是完全用mockito代替easymock了
这个我还真不大清楚,稍后再问问同事。我加入前就是easymock + jmockit了。
惭愧的说在此之前我还真不知道jmockit的存在,也不知道原来static方法也是可以mock的。
我猜测啊,可能是开始用easymock,后来发现有些地方easymock搞不定,因此作为补充引入的jmockit。从我看到的测试代码上看,jmockit目前都是在这些对于easymock来说比较难受的地方在使用。jmockit 自己的expection, verification好像没有看到。
正在研究jmockit中,上面引用的那个特性列表,哎,不能不再此惭愧一下,很多特性我都是不知道它的存在的,等稍后仔细过一遍在说。
推荐的理由是什么?能简单说一下吗?mockito我还没有接触过,不大清楚。
我们这边在用jmockit,来解决一些easymock无法做到的问题,比如模拟静态方法。
这里有一个jmockit给出来的特性对比列表,mockito也在其中。
http://code.google.com/p/jmockit/wiki/MockingToolkitComparisonMatrix
当然这个是jmockit给出来的,可能不是很公正。不过大体上看,jmockit还是很强大的。
因为mockito完全可以代替easymock,而且语法简单,功能更强,所以推荐。
jmockit我都没听说过,哈哈,看那个比较貌似jmockit更强,比如可以mock静态方法。
另外,你们为何结合使用两个mock框架,只用jmockit一个不可以么?
像我现在就是完全用mockito代替easymock了
mockito的优点很多,比较有特色的是这两个:
Argument matchers
Sometimes, when extra flexibility is required then you might use argument matchers:
//stubbing using built-in anyInt() argument matcher
when(mockedList.get(anyInt())).thenReturn("element");
Stubbing consecutive calls (iterator-style stubbing)
Sometimes we need to stub with different return value/exception for the same method call. Typical use case could be mocking iterators. Original version of Mockito did not have this feature to promote simple mocking. For example, instead of iterators one could use Iterable or simply collections. Those offer natural ways of stubbing (e.g. using real collections). In rare scenarios stubbing consecutive calls could be useful, though:
when(mock.someMethod("some arg"))
.thenThrow(new RuntimeException())
.thenReturn("foo");
//First call: throws runtime exception:
mock.someMethod("some arg");
//Second call: prints "foo"
System.out.println(mock.someMethod("some arg"));
//Any consecutive call: prints "foo" as well (last stubbing wins).
System.out.println(mock.someMethod("some arg"));
Alternative, shorter version of consecutive stubbing:
when(mock.someMethod("some arg"))
.thenReturn("one", "two", "three");
http://mockito.googlecode.com/svn/tags/latest/javadoc/org/mockito/Mockito.html
推荐的理由是什么?能简单说一下吗?mockito我还没有接触过,不大清楚。
我们这边在用jmockit,来解决一些easymock无法做到的问题,比如模拟静态方法。
这里有一个jmockit给出来的特性对比列表,mockito也在其中。
http://code.google.com/p/jmockit/wiki/MockingToolkitComparisonMatrix
当然这个是jmockit给出来的,可能不是很公正。不过大体上看,jmockit还是很强大的。
这也就算了,最要命的地方是,easyMock和easyMock class extension在使用时,class名是相同的,只是package不同。这会导致一个非常令人抓狂的问题:如果在同一个测试类中,需要同时使用interface mock和class mock,就必须同时使用org.easymock.EasyMock和org.easymock.classextension.EasyMock,由于java import只能import一个,因此另外一个就必须使用全限定名,如:
import org.easymock.EasyMock;
...
Easymock.createMock(...);
org.easymock.classextension.EasyMock.createMock(...);
编码的时候稍有不慎就搞错,代码难写而且难看。很明显,这是一个没有必要的设计,因为使用者通常并不关心mock的是interface还是class。
近日得知easymock已经发布了新的3.0版本,该版本的主要改进就是消除上述的问题,新版本中可以直接mock class,不再强制使用easyMock class extension。
以下是easymock官网 http://easymock.org/ 的发布信息:
010-05-08: EasyMock 3.0 is available. Perform class mocking directly. EasyMock 1 classes removed.
2010-05-08: EasyMock 3.0 Class Extension is available. Now deprecated. Only a proxy over EasyMock to provide backward compatibility.
可以看到为了兼容2.*版本的就有代码,3.0之中还是发布了Class Extension版本,作为旧有的2.*代码和新的3.0之间的代理。不过明确标记为"deprecated"了。
试用了一下,新的3.0版本中,直接使用org.easymock.EasyMock,可以在同一个case中同时混合mock interface和class,使用方式和以往相同。恩,明显感觉使用方便了许多。
顺便做了一下兼容性测试,针对旧有的使用2.*版本的class mock的测试案例,尝试使用两种方法:
1. 不修改原有代码,使用3.0的class extension来保持兼容
代码编译通过,测试案例正常运行。
这个方案适合项目较大时先整体升级,保证测试案例可以运行,后续再逐步转移到3.0版本。
2. 修改原有代码,不再使用class extension
代码只需一个改动,即将原有的org.easymock.classextension.EasyMock 修改为org.easymock.EasyMock,通常只要简单修订import即可。eclispe下简单ctrl +shit + o一招即可搞定。
两个方法组合使用,就可以平稳的将原有的2.*的测试案例转移到新的3.0版本中。
强烈推荐还在使用easymock 2.*的朋友们升级到3.0版本。
评论
13 楼
skydream
2010-07-10
xupo 写道
刚把maven的easymock 从2.3升级到3.0
不错.看了下maven的repo1,发现easymock 3.0 是2010年5月8日提交的.
不错.看了下maven的repo1,发现easymock 3.0 是2010年5月8日提交的.
是的,新版本刚发布不久。
我是经同事告知才知道3.0发布的。发这个帖子出来,就是希望能帮到和我一样被class extension困扰的朋友升级到3.0。
12 楼
xupo
2010-07-10
刚把maven的easymock 从2.3升级到3.0
不错.看了下maven的repo1,发现easymock 3.0 是2010年5月8日提交的.
不错.看了下maven的repo1,发现easymock 3.0 是2010年5月8日提交的.
11 楼
daquan198163
2010-07-08
ilove2009 写道
本人赞成要做单元测试的,但往往工期很紧张。没办法,能省就省(设计、文档、评审都没有,呵呵)。
本人赞成要多运动,但往往工作忙、应酬多,所以……
10 楼
ilove2009
2010-07-08
skydream 写道
ilove2009 写道
archerfrank 写道
skydream 写道
ilove2009 写道
几年前用过easymock,现在项目中基本没有单元测试。有,顶多也是写个main方法跑一把。
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
我们是分层开发的,基本上算是集成测试吧。目前还不知道有那些技术能给B/S结构的做完整的单元测试。
给B/S结构的做完整的单元测试确实不容易,不过即使抛开B不谈,你的S端总的有单元测试吧?
s端的业务逻辑,实现逻辑这些都是可以用单元测试来保证质量的,我相信你们的s端怎么也不至于简单到只要得到两个参数a,b,然后直接return (a + B)这么简单吧?
本人赞成要做单元测试的,但往往工期很紧张。没办法,能省就省(设计、文档、评审都没有,呵呵)。
9 楼
skydream
2010-07-07
ilove2009 写道
archerfrank 写道
skydream 写道
ilove2009 写道
几年前用过easymock,现在项目中基本没有单元测试。有,顶多也是写个main方法跑一把。
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
我们是分层开发的,基本上算是集成测试吧。目前还不知道有那些技术能给B/S结构的做完整的单元测试。
给B/S结构的做完整的单元测试确实不容易,不过即使抛开B不谈,你的S端总的有单元测试吧?
s端的业务逻辑,实现逻辑这些都是可以用单元测试来保证质量的,我相信你们的s端怎么也不至于简单到只要得到两个参数a,b,然后直接return (a + B)这么简单吧?
8 楼
ilove2009
2010-07-07
archerfrank 写道
skydream 写道
ilove2009 写道
几年前用过easymock,现在项目中基本没有单元测试。有,顶多也是写个main方法跑一把。
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
我们是分层开发的,基本上算是集成测试吧。目前还不知道有那些技术能给B/S结构的做完整的单元测试。
7 楼
archerfrank
2010-07-06
skydream 写道
ilove2009 写道
几年前用过easymock,现在项目中基本没有单元测试。有,顶多也是写个main方法跑一把。
这个,未免强大了点,你们是怎么保证代码质量的?
传说中的单元测试无用论,直接集成测试。。。
6 楼
skydream
2010-07-06
ilove2009 写道
几年前用过easymock,现在项目中基本没有单元测试。有,顶多也是写个main方法跑一把。
这个,未免强大了点,你们是怎么保证代码质量的?
5 楼
ilove2009
2010-07-05
几年前用过easymock,现在项目中基本没有单元测试。有,顶多也是写个main方法跑一把。
4 楼
skydream
2010-06-30
daquan198163 写道
另外,你们为何结合使用两个mock框架,只用jmockit一个不可以么?
像我现在就是完全用mockito代替easymock了
这个我还真不大清楚,稍后再问问同事。我加入前就是easymock + jmockit了。
惭愧的说在此之前我还真不知道jmockit的存在,也不知道原来static方法也是可以mock的。
我猜测啊,可能是开始用easymock,后来发现有些地方easymock搞不定,因此作为补充引入的jmockit。从我看到的测试代码上看,jmockit目前都是在这些对于easymock来说比较难受的地方在使用。jmockit 自己的expection, verification好像没有看到。
正在研究jmockit中,上面引用的那个特性列表,哎,不能不再此惭愧一下,很多特性我都是不知道它的存在的,等稍后仔细过一遍在说。
3 楼
daquan198163
2010-06-29
skydream 写道
daquan198163 写道
推荐mockito
推荐的理由是什么?能简单说一下吗?mockito我还没有接触过,不大清楚。
我们这边在用jmockit,来解决一些easymock无法做到的问题,比如模拟静态方法。
这里有一个jmockit给出来的特性对比列表,mockito也在其中。
http://code.google.com/p/jmockit/wiki/MockingToolkitComparisonMatrix
当然这个是jmockit给出来的,可能不是很公正。不过大体上看,jmockit还是很强大的。
因为mockito完全可以代替easymock,而且语法简单,功能更强,所以推荐。
jmockit我都没听说过,哈哈,看那个比较貌似jmockit更强,比如可以mock静态方法。
另外,你们为何结合使用两个mock框架,只用jmockit一个不可以么?
像我现在就是完全用mockito代替easymock了
mockito的优点很多,比较有特色的是这两个:
Argument matchers
Sometimes, when extra flexibility is required then you might use argument matchers:
//stubbing using built-in anyInt() argument matcher
when(mockedList.get(anyInt())).thenReturn("element");
Stubbing consecutive calls (iterator-style stubbing)
Sometimes we need to stub with different return value/exception for the same method call. Typical use case could be mocking iterators. Original version of Mockito did not have this feature to promote simple mocking. For example, instead of iterators one could use Iterable or simply collections. Those offer natural ways of stubbing (e.g. using real collections). In rare scenarios stubbing consecutive calls could be useful, though:
when(mock.someMethod("some arg"))
.thenThrow(new RuntimeException())
.thenReturn("foo");
//First call: throws runtime exception:
mock.someMethod("some arg");
//Second call: prints "foo"
System.out.println(mock.someMethod("some arg"));
//Any consecutive call: prints "foo" as well (last stubbing wins).
System.out.println(mock.someMethod("some arg"));
Alternative, shorter version of consecutive stubbing:
when(mock.someMethod("some arg"))
.thenReturn("one", "two", "three");
http://mockito.googlecode.com/svn/tags/latest/javadoc/org/mockito/Mockito.html
2 楼
skydream
2010-06-28
daquan198163 写道
推荐mockito
推荐的理由是什么?能简单说一下吗?mockito我还没有接触过,不大清楚。
我们这边在用jmockit,来解决一些easymock无法做到的问题,比如模拟静态方法。
这里有一个jmockit给出来的特性对比列表,mockito也在其中。
http://code.google.com/p/jmockit/wiki/MockingToolkitComparisonMatrix
当然这个是jmockit给出来的,可能不是很公正。不过大体上看,jmockit还是很强大的。
1 楼
daquan198163
2010-06-28
推荐mockito
发表评论
-
easymock教程-运行时返回值或者异常
2010-11-30 16:36 5691前面的教程中,我们看到easymock可以通过 ... -
easymock教程-改变同一个方法调用的行为
2010-11-30 17:06 3326在easymock中,对于mock对象的同一个方法,可 ... -
easymock教程-自定义参数匹配器
2010-11-30 18:18 4047虽然easymock中提供了大量的方法来进行参数匹配, ... -
easymock教程-目录
2010-10-14 10:44 8435easymock是目前比较流行的java mock 工 ... -
easymock教程-单元测试中的主要测试对象和依赖
2010-10-14 14:01 3632在单元测试中,通常我们都会有一个明确的测试对象,我们 ... -
easymock教程-record-replay-verify模型
2010-10-15 14:50 7244record-replay-verify 模型容许记录 ... -
easymock教程-easymock的典型使用
2010-10-15 17:14 6176关于easymock的典型使用方式,在easym ... -
easymock教程-class mocking
2010-10-26 16:54 2791前面的例子中,mock的对象都是基于interface ... -
easymock教程-使用MockControl
2010-10-26 17:18 4425在easymock中,通常我们使用一下的代码来创建m ... -
easymock教程-strict和nice
2010-11-19 11:39 4123在easymock的使用过程中,当创建mock对象时, ... -
easymock教程-创建stub对象
2010-11-23 17:51 3143前面教程中有个章节讨论到mock和stub的概念差 ... -
easymock教程-mock的限制
2010-11-25 11:12 12206easymock并不是万能的,在使用easymock时 ... -
easymock教程-放宽调用次数
2010-11-29 15:55 3237对于mock对象上的mock方法的调用,easymoc ... -
easymock教程-命名mock对象
2010-11-29 16:34 3031在创建mock对象的时候,我们可以命名mock对象。 ... -
easymock教程-参数匹配
2010-11-29 18:57 7183easymock中提供了非常多的方法来实现参数匹配,基 ... -
easymock教程-partial class mocking
2010-11-30 14:23 2870easymock中提供对于类的mock功能,我们可以方 ... -
easymock教程-mock和stub
2010-08-26 15:26 5898作为测试的基本概念,在开发测试中经常遇到mock和st ... -
loadrunner license设置问题
2008-02-18 11:35 7438初学loadrunner,今天准备用这个工具测试一下手头的一个 ... -
TestNG官方文档中文版(1)-介绍
2008-03-18 22:25 1766最近决定开始使用TestNG ... -
TestNG官方文档中文版(2)-annotation
2008-03-19 23:22 1881TestNG的官方文档的中文翻译版第二章,原文请见 http: ...
相关推荐
在提供的压缩包文件名称"junit4.6+easymock3.0"中,尽管标题提到的是4.4版本的JUnit,但这里可能是4.6版本的JUnit,这可能意味着更新或升级的版本。4.6版本相对于4.4版本会有一些额外的改进和修复,例如更多的注解...
在"easymock-3.0.jar"这个文件中,包含了Easymock 3.0版本的库。你可以将其添加到你的项目类路径中,以便在测试代码中使用Easymock的功能。这个版本支持Junit 4.x,如果你的项目使用的是更早的JUnit版本,可能需要...
在Spring 3.0版本中,引入了许多增强特性,如简化XML配置、支持JSR-330标准的依赖注入、以及对RESTful服务的支持等。 Struts 2是Struts的下一代,它基于MVC设计模式,提供了更灵活的Action配置、强大的拦截器机制...
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
麒麟win10双系统重新安装win10后麒麟启动菜单看不到解决方法
多邻国Duolingo v6.0.3 高级版.apk
QT网络编程: 实现TCP通讯设置(客户端)
减少重复造轮子,开源微信小程序商城(前后端开源:uniapp+Java)。快速搭建一个属于自己的微信小程序商城。
彩虹云商城 最新彩虹代刷V6.9.0免授权纯净完整版 直接上传源码解压缩后访问域名安装即可,亲测可用 彩虹自助下单系统 安装说明: 上传到空间后直接访问即可根据提示安装。 PHP推荐使用7.0及以上版本 V6.9 1.修复SQL注入漏洞 2.修复后台微信QQ扫码登录 V6.8.5 1.修复亿乐对接 2.新增支持倍数输入框 V6.8 1.更新全新的faka模板 2.新增微信快捷登录 3.新增批量下单功能 4.防CC配置新增滑动验证码模式 5.修复部分地区后台加载错误 6.修复https网站对接http支付接口 7.后台登录支持微信QQ扫码登录
MyBatis-Plus学习思维导图
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
分布式搜索引擎ElasticSearch思维导图
网鼎杯
网络安全入门教程(工具版)
科普里控制器调试软件工具使用 win64环境安装
内容概要:本文档详细介绍了GC9503V单片机a-Si TFT LCD驱动器的技术规格,包括主要特点、内部结构图、引脚定义以及系统接口等。GC9503V支持480x864分辨率,16.7百万色显示,无内置GRAM。文章还提供了详细的引脚尺寸、对齐标记尺寸、芯片信息以及接口模式控制的序列实例,如DCS写入命令及其参数。 适合人群:LCD显示屏设计人员、嵌入式系统工程师、电子硬件开发者和技术研究人员。 使用场景及目标:帮助开发者快速理解和应用GC9503V在实际产品中的具体使用方法,掌握LCM与MCU之间的数据交互方式,实现高效的屏幕驱动设计。 其他说明:GalaxyCore公司保留在不事先通知的情况下更改文档内容的权利。
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据