def objectOrgUnit = Stub(ConOrgUnit)
def notification
def setup(){
objectOrgUnit = Stub(ConOrgUnit) {
getLogicalName() >> "Multimedia"
}
}
def "CreateNotification creates Notification with correctly caluclated dates"() {
given:
def date = new java.sql.Date(2020-1900,4,1)
def not = new NotificationGenerator()
def contract = GroovyMock(GenericBean) {
getCtrInsuranceDateToDat() >> date
}
def vocs = GroovyStub(ControlledVocabularyAccess) {
getNodesByInstanceAndName('TasStatusVgr', 'open') >> [Stub(ControlledVocabularyNode)]
getNodesByInstanceAndName('TasTypeVgr', 'TYPE') >> [Stub(ControlledVocabularyNode)]
}
def newNotification = GroovyMock(GenericBean) {
getTasContract02Ref() >> GroovyMock(GenericBean)
getTasSendEmailGrp() >> GroovyMock(GenericBean)
}
def dataAccess = GroovyStub(DataAccess) {
createObject("Task") >> newNotification
}
def orgUnitAdminService = Stub(OrgUnitAdminServiceAccess) {
readUsingLogicalName("org") >> objectOrgUnit
}
not.metaClass.vocs = vocs
not.metaClass.dataAccess = dataAccess
not.metaClass.orgUnitAdminService = orgUnitAdminService
when:
notification = not.createNotification(contract, 2, "REASON", "TYPE", "TESTMAIL@MAIL.COM", "org")
then:
1 * newNotification.setTasDeadlineDat(2020-02-01)
1 * newNotification.setTasDeadlineToDat(2020-02-01)
}
1 * newNotification.setTasDeadlineDat(2020-02-01) (0 invocations)
Unmatched invocations (ordered by similarity):
1 * newNotification.setTasDeadlineDat(2020-02-01)
所以看起来是正确的?我也试着测试“日期”,这也不起作用。
代码本身是这样的(部分):
Calendar c = Calendar.getInstance()
c.setTime(contract.CtrInsuranceDateToDat)
c.add(Calendar.MONTH, -1 * (months + 1))
taskNotification.TasDeadlineDat = new java.sql.Date(c.getTime().getTime())
taskNotification.TasDeadlineToDat = new java.sql.Date(c.getTime().getTime())
好吧,我不能做你的测试,但我想我发现了:
then:
1 * newNotification.setTasDeadlineDat(2020-02-01)
1 * newNotification.setTasDeadlineToDat(2020-02-01)
2020-02-01
只是一个减法2020-2-1
或2017
,而不是日期,既不是简单的Java日期也不是SQL日期(这是Java日期的子类,所以要小心)。
我想你更想要的是:
given:
def expectedDate = new SimpleDateFormat("yyyy-MM-dd").parse("2020-02-01")
// ...
then:
1 * newNotification.setTasDeadlineDat(expectedDate)
1 * newNotification.setTasDeadlineToDat(expectedDate)
下面是源代码和测试代码,有人能让我知道我做错了什么吗?似乎根本没有调用dao mock并返回“USA”。我在网上做了一些研究,找不到我做错了什么。 下面是我的Spock测试代码:
问题内容: 我有一个自定义适配器,可显示订单列表中的每一行。 从Web服务查询新的订单列表之后,我想更新ListView的内容,因此我让Activity在调用notifyDataSetChanged()之前进行更新。 但是,从不调用OrderRowAdapter的getView()方法。ListView永远不会更新。 问题答案: 原来我不被叫的问题是因为它不可见。我的布局XML已经上与它的高度。因
TL;DR:我希望能够等待所有的期货,但是一旦它结束,就得到每个可赎回的返回值。 假设我使用一个执行器运行多个Callable。如果我有一个未来列表,是否有任何优雅的方法可以获得任何已完成任务的回报值,然后以相同的方式等待任务的其余部分?
下一个过程很容易理解和复制,但会导致一个错误: activityA在其
问题内容: 我是Python的新手,并且正在学习教程。本教程中有一个示例: 现在,在教程中,。但就我而言,我得到以下错误: 问题答案: 好像你已经用指向类实例的相同名称遮盖了指向类的内置名称。这是一个例子: 我相信这是显而易见的。Python将对象名称(函数和类也是对象)存储在字典中(命名空间实现为字典),因此你可以在任何范围内重写几乎任何名称。它不会显示为某种错误。如你所知,Python强调“特
所以我在ReactJS中做了一个排序可视化。 我有一个名为“bubblesort”的方法,它将遵循气泡排序算法对数组进行排序。 我有一个数组生成并在屏幕上可视化,名为“array”。 现在当我使用 它将对数组进行排序,并在每次加载页面时自动更改可视化数组。它不是我想要的,我想让它对数组进行排序,并在我单击按钮时改变可视化。所以我又做了一个这样的方法 并像这样调用按钮,它将对数组进行排序,但屏幕上的