그래서이 메소드는 2 개의 객체 목록에서 임의로 객체를 선택합니다. JUNIT 테스트 (@Test
)를 쓰고 싶습니다. 신뢰 수준에 근거하여 어쨌든 두 개체 각각을 선택할 확률이 50 %입니다.자바에서 신뢰 구간을 사용하여 객체 목록에서 요소의 임의 선택을 테스트하십시오.
테스트중인 코드의 단편 : I는 입력 파라미터를 셔플 링 타입 MySepecialObj
및 new Random()
의 입력 대상으로서 2 모의 객체 (firstMySepecialObjMock
및 secondMySepecialObjMock
)를 제공하고자
public MySepecialObj pickTheValue(List<MySepecialObj> objs, Random shufflingFactor) {
// this could probably be done in a more efficient way
// but my point is asserting on the 50% chance of the
// two objects inside the input list
Collections.shuffle(objs, shufflingFactor);
return objs.get(0);
}
시험에있어서, 그 주장 firstMySepecialObjMock
이 시간의 50 %를 차지하고 나머지는 50 %의 시간에 secondMySepecialObjMock
이 선택됩니다. 같은
뭔가 : 여기 통계 이론에 대해 확실하지 오전
@Test
public void myTestShouldCheckTheConfidenceInterval() {
// using Mockito here
MySepecialObj firstMySepecialObjMock = mock(MySepecialObj.class);
MySepecialObj secondMySepecialObjMock = mock(MySepecialObj.class);
// using some helpers from Guava to build the input list
List<MySepecialObj> theListOfTwoElements = Lists.newArrayList(firstMySepecialObjMock, secondMySepecialObjMock);
// call the method (multiple times? how many?) like:
MySepecialObj chosenValue = pickTheValue(theListOfTwoElements, new Random());
// assert somehow on all the choices using a confidence level
// verifying that firstMySepecialObjMock was picked ~50% of the times
// and secondMySepecialObjMock was picked the other ~50% of the times
}
, 그래서 어쩌면 내가 생성자에 다른 매개 변수와 함께 Random
의 다른 인스턴스를 제공해야합니까?
신뢰 수준을 매개 변수로 설정할 수있는 테스트를하고 싶습니다 (일반적으로 95 %라고 추측 할 수 있지만 다른 값이 될 수 있습니다).
- 신뢰 수준 매개 변수와 관련된 테스트의 순수한 Java 솔루션/설정이 될 수 있습니까?
- Apache Commons와 같은 일부 도우미 라이브러리를 포함하는 테스트의 동등한 솔루션/설정이 될 수 있습니까? 이 모든