我有这样的Room DAO课
$(document).ready(function(){
$.material.init();
// Code for the Validator
var $validator = $('.wizard-card form').validate({
rules: {
firstname: {
required: true,
},
lastname: {
required: true,
},
skills: {
required: true,
},
},
messages: {
skills: {
required: 'Please select at least 2 things.',
}
},
errorPlacement: function(error, element) {
$(element).parent('div').addClass('has-error');
},
});
我尝试为其中一种方法编写检测测试,并且它始终返回null,我将规则设置为Instanttaskexecutorrule,但livedata.value仍返回null,下面是我的测试代码
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tagsinput/0.8.0/bootstrap-tagsinput.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tagsinput/0.8.0/bootstrap-tagsinput.js"></script>
<div class="card wizard-card">
<form action="" post="">
<div class="col-sm-5 col-sm-offset-1">
<div class="input-group">
<div class="form-group label-floating">
<label class="control-label">First Name</label>
<input name="firstname" type="text" class="form-control">
</div>
</div>
</div>
<div class="col-sm-5">
<div class="input-group">
<div class="form-group label-floating">
<label class="control-label">Last Name</label>
<input name="lastname" type="text" class="form-control">
</div>
</div>
</div>
<div class="col-sm-10 col-sm-offset-1">
<div class="form-group label-floating">
<label class="control-label">Professional Skills</label>
<input type="text" value="hairdresser" data-role="tagsinput" class="form-control" name="skills[]" id="skilltags" />
</div>
</div>
</form>
</div>
getAllSourceCategoryItems()总是失败,因为来自dao的livedata为空,如何解决此问题?
答案 0 :(得分:0)
正如@blackbelt在上述评论中所说,我们需要观察该方法返回的实时数据来解决问题,这个库帮助我无需编写大量样板代码即可测试实时数据
https://github.com/jraska/livedata-testing
我已经更改了我的考试
@Test
fun getAllSourceCategoryItems() {
// test insert a source item
val testSource = Source("foo", 1)
db.sourceDao().insertSource(testSource)
val livedata = db.sourceDao().getAllSourceItems()
livedata.test().assertValue(listOf(testSource))
}