var testUserId = null;
describe("user test", function() {
beforeAll(function(done) {
createTestUser().
.then(function(userId){testUserId = userId})
.then(done)
.catch(done.fail);
it("should do stuff with the test user", function(done) {
// bla bla
});
afterAll(function(done) {
deleteTestUser(testUserId).
.then(done)
.catch(done.fail);
});
})
createTestUser 및 deleteTestUser 반환 약속처럼 내 jasmine2/각도기 테스트 모습. 문제가 발생하면 오류 메시지와 함께 거부됩니다. 이제 문제는 beforeAll에서 오류가 발생해도 테스트가 시작된다는 것입니다. 그리고 내가 얻을
많은 테스트가있는 경우 모두 수행하려고 시도하고 매우 잘못된 오류 메시지와 함께 실패합니다. beforeAll 함수가 실패하면 테스트를 실행하지 못하게 할 수 있습니까?
Thx!
("재스민 코어": "2.8.0", "각도기": "5.2.1")
편집 :
정확히 아니다 I가 있지만에서 요청이 있었는지
var testUserId = null;
describe("user test", function() {
beforeAll(function(done) {
createTestUser().
.then(function(userId){testUserId = userId})
.then(done)
.catch(done.fail("test user could not be created"));
it("should do stuff with the test user", function(done) {
if (testUserId) {
// bla bla
} else {
done();
});
나는 적어도만을 올바른 오류 메시지 ("테스트 사용자가 만들 수 없습니다")를 얻을이 방법과 아닌 사람 : 적어도 나는 메시지는 다음과 같이 닫 오류의 양을 유지하기 위해 해결책을 발견 충족되지 않은 기대치는 "// bla b 라 "(당연히 나는 각각 에 대해 하나를 얻는다. 그러나). 나는 또한 if-condition을 매번 작성할 필요가 없도록 function-factory에 함수를 래핑했습니다. 관심에도 불구하고 내가 이해에서
왜 createTestUser'가 생성하는'하는 의존성을 조롱되지는 ? 의존성이 실패했기 때문에 테스트가 실패하지 않아야합니다. 자신을 격리 시키십시오! –
그게 전부입니다. 단지 그것이 나에 의해 만들어지지 않은 아키텍처에서 너무 큰 변화를 의미한다고 말할 수 있습니다. realz에는 testuser가 생성되었을뿐만 아니라 많은 다른 것들이 있지만, 실제 데이터베이스와 물건을 가진 백엔드를 사용하면 잘못 될 수 있습니다. 예, 예, 알고 있습니다 .. – Paflow
그러면 x-y 문제가있는 것 같습니다. 당신은 당신의 시험에있는 항목들로 무엇이든 할 수 있습니다. –