У меня есть единичный тест, который я пытаюсь получить для подтверждения.validate() Mock Constraint Testing in Grails
В принципе, когда я звоню badMockedSecureFile.validate()
, это не делает то, что я ожидаю, и это не дает подтверждения для двух полей: encryptedFileName
и encryptedFileData
.
Когда я нарушаю отладчик, я просто получаю значение null
для badMockedSecureFile.errors
в последующем утверждении. Вот мои два файла:
Любой вход был бы оценен. Я не мог найти точно такой же вопрос. Я использую grails 2.2.4 с Oracle JDK 1.7.0_25 если это имеет значение.
EDIT: Я просто хотел отметить, что я удалил вызов mockForConstraintTests
и, похоже, сейчас работает. У меня такое чувство, что я не RTFM где-то, и это поведение изменилось в модульном тестировании, или что-то еще происходит?
SecureFile.groovy
class SecureFile implements Serializable {
/**
* An unencrypted version of the file name. This file name is unencrypted
* when the appropriate password and key combo is used and it is never
* persisted to the database for security (see transients below).
*/
String fileName
/**
* Unencrypted version of the file data. Never persisted to the
* database for security (see transients below).
*/
byte[] fileData
String encryptedFileName
byte[] encryptedFileData
Date dateAdded
Date dateUpdated
Date dateDeleted
static constraints = {
encryptedFileName(nullable: false, blank: false)
encryptedFileData(nullable: false)
}
static transients = ["fileName", "fileData"]
static belongsTo = [user: User]
}
SecureFileTests.groovy
import static org.junit.Assert.*
import grails.test.mixin.*
import grails.test.mixin.support.*
import org.junit.*
/**
* See the API for {@link grails.test.mixin.support.GrailsUnitTestMixin} for usage instructions
*/
@TestFor(SecureFile)
class SecureFileTests {
static final String SAMPLE_PDF_FILE = "fileEncryptionTestSample.pdf"
void testConstraints() {
def samplePdfFile = new FileInputStream(SAMPLE_PDF_FILE)
// Not really encrypted for this mock.
def mockedSecureFile = new SecureFile(
encryptedFileName: "--Not-Really-Encrypted--",
encryptedFileData: samplePdfFile.getBytes()
)
mockForConstraintsTests(SecureFile, [mockedSecureFile])
// Validation should fail if both properties are null.
def badMockedSecureFile = new SecureFile()
assert !badMockedSecureFile.validate()
assert "nullable" == badMockedSecureFile.errors["encryptedFileName"].code
assert "nullable" == badMockedSecureFile.errors["encryptedFileData"].code
}
}
Я просто хотел прослушивать и отметить, что я удалил вызов 'mockForConstraintTests', и теперь он работает. У меня такое чувство, что я не RTFM где-то, и это поведение изменилось в модульном тестировании, или что-то еще происходит? –