犀牛模拟和方法没有返回正确的价值

时间:2012-07-05 17:25:48

标签: rhino-mocks

有谁知道为什么Username_Exists不会返回True。我必须让我的语法搞砸了。

[TestMethod()]
        public void GenerateUsername_AppendTwoCharacters_ReturnUsernameWithTwoAppendedCharacters()
        {
            var usersRepository = MockRepository.GenerateStub<IUsersRepository>();
            var target = new StudentsService(null, null, usersRepository, null, null, null, null);

            usersRepository.Expect(q => q.UsernameExists("", null)).Return(true);

            var actual = target.GenerateUsername("test", "student", "280000");
            Assert.AreEqual("A", actual);
        }

public string GenerateUsername(string firstName, string lastName, string studentNumber)
        {
            var originalusername = new StudentUsernameGenerator(firstName, lastName, studentNumber).Generate(2, 2, 4);

            var username = originalusername;
            if (!string.IsNullOrWhiteSpace(username))
            {
                decimal maxCharacters = 26;
                var counter = 0;
                var overflow = 1;

                while (_usersRepository.UsernameExists(username, null))
                {
                    counter++;

                    if (counter > maxCharacters)
                    {
                        overflow++;
                        counter = 1;
                    }

                    username = GetCharacterPaddingForDuplicateUsername(counter, overflow, originalusername);
                }
            }

            return username;
        }

1 个答案:

答案 0 :(得分:3)

我必须添加IgnoreArguments

usersRepository.Stub(q => q.UsernameExists("", null)).IgnoreArguments().Return(true);