학습 목적으로, 나는 단위 테스트 분야로 뛰어 들었다. 나는 QT를 사용하여이 문제에 관한 몇 가지 튜토리얼을 읽고, 다음 내놓았다했습니다 단위 테스트의 목적은 무엇입니까?
class QMyUnitTest : public QObject
{
Q_OBJECT
private:
bool isPrime(unsigned int ui);
private Q_SLOTS:
void myTest();
};
bool QMyUnitTest::isPrime(unsigned int n) {
typedef std::map<unsigned int, bool> Filter;
Filter filter;
for(unsigned int ui = 2; ui <= n; ui++) {
filter[ui] = true;
}
unsigned int ui = filter.begin()->first;
for(Filter::iterator it = filter.begin();
it != filter.end(); it++) {
if(it->second) {
for(unsigned int uj = ui * ui; uj <= n; uj += ui) {
filter[uj] = false;
}
}
ui++;
}
return filter[n];
}
void QMyUnitTest::myTest() {
}
QTEST_MAIN(QMyUnitTest)
#include "tst_myunittest.moc"
내가 내 주요 찾기 알고리즘은 비효율적이고, 특히 결함이 알고; 그것은이 방법을 의미합니다. 이제는 철저히 테스트하고 싶지만 다음과 같은 질문이 생깁니다.
무엇이 잘못 될지에 대한 정확한 아이디어는 필요하지 않습니까? 내가 처음 1000 개 개의 소수를 통해 실행하고 그들이 true
또는 1000 프라임하지 번호를 나와서 그들이 false
을 나와 있는지 확인하지만 예를 들어 알고리즘에서 결함을 (잡을 수 있는지 확인 할 수 물론
: return filter[n];
은 filter[n]
이 존재하지 않을 수 있으므로 분명히 끔찍합니다. n<2
인 경우).
내 기능의 잠재적 인 문제점을 이미 알아야 할 경우 단위 테스트가 무엇입니까?
내가 잘못하고 있니? 테스트 할 수있는 더 좋은 방법이 있습니까?
질문을 설명하는 데 사용 된 태그 이외의 다른 문자가 포함되도록 머리글을 수정하십시오. 예를 들어, "단위 테스트의 목적은 무엇입니까?" –
조언을 주셔서 감사합니다, 나는 그것을 바 꾸었습니다. – nijansen